Доброго всем времени суток, уважаемые.
Столкнулся со следующей проблемой при переходе с Firebird 2.5 на Firebird 3.0
В частности, в 3.0 стало нельзя указывать алиасы к полям русскими буквами более чем из 16 символов, тогда как в 2.5 это было возможно (32 русских ANSI-символа на ура работали).
Вот такой запрос выполняю под FB2.5, все работает прекрасно:
беру этот же запрос выполняю под 3.0 и получаю:
Если в алиасе изменить раскладку, то запрос выполняется:
Заметил такую особенность в 3.0:
Всего под алиас выделяется 32 байта (максимальное количество символов при этом латинских 31, кириллица - 15), латинские символы в алиасе занимают по одному байту, а кириллица по два, тоесть можно написать, например, так:
Этот запрос не выполняется, хотя общая длина символов 29, если принять ту арифметику что я писал чуть выше, то получается 26 + 2*3 = 32.
Если же мы уберем любую одну латинскую букву, то запрос выполняется.
Кто что думает по этому поводу?
Столкнулся со следующей проблемой при переходе с Firebird 2.5 на Firebird 3.0
В частности, в 3.0 стало нельзя указывать алиасы к полям русскими буквами более чем из 16 символов, тогда как в 2.5 это было возможно (32 русских ANSI-символа на ура работали).
Вот такой запрос выполняю под FB2.5, все работает прекрасно:
SELECT 'Field Value' AS "Алиас состоящий из 30 символов" FROM RDB$DATABASE
беру этот же запрос выполняю под 3.0 и получаю:
+ Текст ошибки |
Если в алиасе изменить раскладку, то запрос выполняется:
+ Запрос и результат |
Заметил такую особенность в 3.0:
Всего под алиас выделяется 32 байта (максимальное количество символов при этом латинских 31, кириллица - 15), латинские символы в алиасе занимают по одному байту, а кириллица по два, тоесть можно написать, например, так:
SELECT 'Field Value' AS "abcdefghigklmnopqrstuvwxyzЖЙЫ" FROM RDB$DATABASE
Этот запрос не выполняется, хотя общая длина символов 29, если принять ту арифметику что я писал чуть выше, то получается 26 + 2*3 = 32.
Если же мы уберем любую одну латинскую букву, то запрос выполняется.
Кто что думает по этому поводу?