VitaliM

Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору X11 SHKoder Поставил FB 2.01 и проверил свой тест. Добавил в таблицу поле Varchar с кодировкой UNICODE_FSS. Все работает, когда в запросе нет строкового поля с collate=PXW_CYRL, как только оно появляется в запросе, возникает деление на 0. Я правил немного исходник IBX, тогда в любом случае все работает. В файле IBSQL.pas добавил в строке типов SQLSubtype значение 308 Код: function TIBXSQLVAR.GetCharsetSize: Integer; begin case SQLVar.SQLSubtype of 0, 1, 2, 10, 11, 12, 13, 14, 19, 21, 22, 39, // 45, 46, 47, 50, 51, 52, 53, 54, 55, 58 : Result := 1; 45, 46, 47, 50, 51, 52, 53, 54, 55, 58, 308 : Result := 1; 5, 6, 8, 44, 56, 57, 64 : Result := 2; 3 : Result := 3; 59 : Result := 4; else Result := 0; end; end; | ЗЫ: Вот пример для базы FB 2.01. Здесь использованы поля WIN1251/WIN1251, WIN1251/PXW_CYRL, UNICODE_FSS/UNICODE_FSS, UTF8/UTF8. Проверяйте у себя. Ошибка лезет толко когда в запросе есть поле WIN1251/PXW_CYRL. |