Название: Qt 4.1.4 QIBASE выводит не все записи в таблицах Отправлено: brontoz от Сентябрь 25, 2006, 13:14 Т.е. в некотрых таблицах выводит всё, в других обрезает и выводит половину таблицы, а некоторые таблицы совсем не выводит. Ругается на деление на ноль или ошибку преобразования.
Естественно все данные на русском. Проводил эксперимент, допустим таблица отображает 15 строк. Беру 16-ю и весь текст единственного строкового поля добавляю в 15-ю запись. Отрабатываю запрос, отображает 14 строк, модифицированная строка пропадает. Последовательно урезаю модифицированную 15-строку и добиваюсь того чтоб она выводилась. Нахожу, что если длина текстового поля допустим 40, то всё нормально, а затем если добавляю ещё любой другой символ (русский), строка уже не выводится. В тексте самого драйвера имеется печально знаменитая строка: static const char enc[8] = "UTF_FSS"; Которую я пытался заменить на WIN1251, не помогло. В режиме DEBUG под MS VС сбоит и ругаецца на фонт, а в Release выводит всё, но вместо букв выводит разряженные квадратики. Что с этим делать? Кстати ещё правил текст драйвера: //sqlda->version = SQLDA_VERSION1; /// Было sqlda->version = SQLDA_CURRENT_VERSION; /// Стало Тоже был какой-то косяк пока не исправил Под это дело даже проабгрейдил IB c 7.1 до 7.5.1, не помогло :cry: добавлено спустя 3 часа 4 минуты: Проблему пока решил так: Обычно БД создавал с опцией DEFAULT CHARACTER SET WIN1251 Попробовал вместо WIN1251 вставить UNICODE_FSS и таблицы стали отображать все записи. Это конечно хорошо, но не слишком корректно, м.б.кто сталкивался? Название: Qt 4.1.4 QIBASE выводит не все записи в таблицах Отправлено: Alex03 от Сентябрь 26, 2006, 06:08 Сталкивался когдато с аналогичной провлемой с FB1.5.
Я сейчас точно не скажу, но там проблемы с длинами. Что-то типа того: Qt спрашивает у БД размер строки в байтах, а далее пытается в эти байты запихать utf-8 строку (даже наверное не qt а клиентская либа с подачи qt). поэтому с ascii и короткими не ascii строками всё нормально, а с длинными облом. Мож я чего и наврал - звиняйте! :) Название: Qt 4.1.4 QIBASE выводит не все записи в таблицах Отправлено: Tonal от Сентябрь 26, 2006, 10:42 У нас, на FB1.5 и FB 2 таких проблем нет.
Да, и макроса SQLDA_CURRENT_VERSION тоже нет. ;-) Что-то там багланд подшаманил в api IB7 похоже... Название: Qt 4.1.4 QIBASE выводит не все записи в таблицах Отправлено: Alexandr Az от Октябрь 02, 2006, 09:00 Да трабла в кодировке всё. Всё в кодировке. Win1251 наверное база и UTF токи умеет конектится куте. Тут не поборешь - это глюк самого fb. Возьми IBExpertом проделай такую же ситуацию, предварительно поставив там кодировку UTF-8. Даже если сделать базу в UTF-8, глюков все равно будет хватать. Во первых забудь про регистронезависимый поиск, а во вторых UDF. Возвращает он в некоторых случаях строки максимальной длины, а они как известно в юникоде должны в 2 раза меньше быть. Выход один - переписать дрова куте - сдалать поддержку win1251. Не боись, там пару строчек заменить :)
|