Привет алл.
Я в ауте с етим UTF8.
Даже незнаю, фибоская ошибка ли ета или FB (2.0.3).
Кладу на форму базу, датасет и трансакцию. Базе конешно уакзиваю lc_ctype=UTF8. Запрос выден в ниже в том что монитор мне выдаёт.

[Application: Project1.exe]
pFIBDataSet1: [Prepare] SELECT  'a-a-a-'
FROM    RDB$DATABASE
WHERE   RDB$SECURITY_CLASS = :MAS_BLABLA

  Plan: PLAN (RDB$DATABASE NATURAL)

[Application: Project1.exe]
pFIBDataSet1.SelectQuery: [Prepare] Form1.pFIBDataSet1.SelectQuery:
Invalid token.
SQL error code = -104.
Malformed string.

А главное что интересно:
1. Если убираем латыские буквы то работает.
2. Если меняем на WHERE RDB$SECURITY_CLASS = 123,
  то пашет нормально и с латышкими буквами.
3. Если в ФИБдатабазе убираем UTF8, то тоже датасет откривается в обоих вариантах
4. Всё предидушее в IBExpert-e проходит нормально.

И главное - пару днеи назад всё работало, и как всегда конешно ничего неделал :) Ошибку шас кидает из всех датасетов где в запросе латышские буквы и в WHERE имеем :MAS_BLABLABLA
База на UFT8. Бекап/рестор непомогает.
Если из експерта вытаскиваем метаданые с скриптом данных, то новая база буилдится нормально, но при инсерте чёто с латыскими буквами выдаёт ето (copy из експерта):

/*******************************************************************************
The next statement causes the following error:

Invalid token.
SQL error code = -104.
unknown ISC error 335544849.
*******************************************************************************/
INSERT INTO CL_ADMT_UNITS (ID, ADMTU_ID, LVL, NAME) VALUES (10000, NULL, 0, 'Ri-ga');

Единственное что делал (сколько помню) то wинду переключал на русскии CodePage и потом обратно на латыскии ....

Ёмаё,чё делать? Можбить неправильно с етими UTF8 работаю? Мне в принципе он нужен только для того чтом в некоторих полях чёто на русском записать ....
Help, help, help :(

Regards
Janex








Ответить