> Кстати ты в курсе что в последних файрах если ты подключился в
> NONE то DDL операторы выполнять противопоказано? По крайней мере некоторые
Почему:
выполняем в NONE:
create procedure AAA
as
begin
-- тут был вася
end
В каком чарсете запишется вася в RDB$PROCEDURE_SOURCE? Правильно, в
WIN1251. А должен быть в юникоде. И если теперь подключиться в cp1251,
то получишь ошибку транслитерации.
--
Дмитрий Еманов
3 комментария:
А если при подключении указана cp1251 и делаются изменения метаданных, в какой кодировке сохранится процедура?
В 2.1 все должно сохраниться в юникоде. Раньше, насколько я понял, сохранялось как раз в 1251, что и привело к текущим проблемам и даже расширение функционала gbak в 2.5 :)
У меня проблемка интересная. Перенес базу с firebird 1.0 на 2.1 бакапом/рестором. Когда подключаюсь ibexpert с charset - cp1251 вываливается такая ошибка.
select RDB$RELATION_NAME, RDB$SYSTEM_FLAG, RDB$OWNER_NAME,
RDB$RELATION_TYPE,
RDB$DESCRIPTION
from RDB$RELATIONS where (RDB$VIEW_BLR is NULL)
order by RDB$RELATION_NAME
Cannot transliterate character between character sets.
Cannot transliterate character between character sets.
Может это изза того что программистки писали дескрипшн на русском в предыдущей версии. Как можно это пофиксить?
Пробовал подключится с charset - unicode_ffs и с делать update rdb$relations r set r.rdb$description=r.rdb$description. Не помогло.
Отправить комментарий