Страница 1 из 1

Сравнении структур баз

Добавлено: 21 окт 2008, 09:20
SerjP
Стоит FB 2.1.1.17910.
При сравнении структур баз - "разработчик"/"боевая"(3й диалект использую IBExpert(- на других базах все ok)) получается ошибочный скрипт - проблема в "русских" текстах
Фрагмент скрипта -
if (vDateParamIsn is null) then execute procedure sys_error('Не найден коэффициент метода. '||:pmethodcoefisn);
-- Определяем дату расчета коэффициента VDate

База создана в FB 2.1, проблем с разработкой нет(при подключении указана кодировка WIN1251, перекомпиляция, редактирование процедур проходит нормально)
В чем может быть проблема? (смотрел http://www.ibase.ru/firebird/21/metadata_charset.htm, select * from rdb$check_metadata ошибок не дает, backup/restore проходит нормально. Смущает один момент - в скрипте отсутсвует SET NAMES WIN1251; )

Re: Сравнении структур баз

Добавлено: 21 окт 2008, 10:41
SerjP
Ситуация прояснилась. Базу создавал не я, при ее создании указали кодировку NONE, а все подключения ставят WIN1251. Разработка идет нормально, но при сравнении структур - оно идет в NONE - с соответствующим результатом. Сейчас воспроизвел эту ситуацию(при создании указал NONE, при подключении WIN1251 - создал процедуру с русским текстом, сделал копию базы, поменял текст, сравнил структуры и получил тот же результат - не читаемый русский текст). Теперь вопрос как исправить эту проблему - пока только вариант - через извлечение метаданных, создание с "правильной" кодировкой и переливании данных. Или есть еще варианты?
И самое гадкое -нигде невидно, что база была создана в NONE

Re: Сравнении структур баз

Добавлено: 21 окт 2008, 12:28
Attid
я бы пересоздал базу и перелил данные , чтоб в будущем меньше спотыкаться.

Re: Сравнении структур баз

Добавлено: 21 окт 2008, 18:13
kdv
И самое гадкое -нигде невидно, что база была создана в NONE
видно в rdb$database. там поле специальное есть, в котором указано, в каком чарсете создана база. Но вообще это фигня, потому что подсоединяться можно с любым чарсетом, и создавать объекты тоже с любым чарсетом.
читай www.ibase.ru/devinfo/ibrusfaq.htm

а перевод на 1251 - да, базу в скрипт, если небольшая, и пересоздать.

Re: Сравнении структур баз

Добавлено: 22 окт 2008, 07:32
SerjP
Да. поменял в rdb$database значение поля RDB$CHARACTER_SET_NAME с NONE на WIN1251 - IBExpert стал нормальный скрипт делать :) Но все равно - пересоздал базу и перелил данные - так спокойнее :) Получается что IBExpert при сравнении баз цепляется к ним не как указано в настройках подключении, а как прописано rdb$database.

Re: Сравнении структур баз

Добавлено: 22 окт 2008, 12:44
kdv
Получается что IBExpert
нет.