Название: проблемы с QIBASE-драйвером Отправлено: Ggg_old от Март 16, 2006, 21:50 QT4.1.1 VC2003, Firebird1.5
Необходимо из хранимой процедуры получить резалтсет и отобразить его в tableview. Хранимка вызывается как select * from procedure MY_PROCEDURE; Если это делать через ODBC -драйвер (Gemini) То все зашибись. Если через QIBASE - то отображаются только имена колонок, а самих данных нет. Это я что-то накосячил или это драйвер такой? P.S. Я так намучался пока собрал этот QIBASE, что уже ничему удивляться не буду... Название: проблемы с QIBASE-драйвером Отправлено: BaltikS от Март 17, 2006, 09:34 А данные не на русском ли языке случайно?
Название: проблемы с QIBASE-драйвером Отправлено: Ggg_old от Март 17, 2006, 10:33 на русском, а что?
Название: проблемы с QIBASE-драйвером Отправлено: BaltikS от Март 17, 2006, 14:13 Вот-вот, на английском он выводит нормально, на русском - нет. То есть где строки с русским - не выводит... Но записывает. Как это решать так и не знаю, кто может знает? Подскажите...
Название: проблемы с QIBASE-драйвером Отправлено: Ggg_old от Март 17, 2006, 17:08 Разобрался, это косяки QT-шного плагина QIBASE. Спасибо за подсказку что этот косяк проявляется, если есть русские буквы в наборе данных.
Все дело в том, что плагин, работая с клиентским API жестко задает юникод-кодировку. Также плагин не имеет поддержки указания роли ROLE=... Также плагин имеет какие-то косяки если писать select * from..., правильно надо писать надо select col1,col2 from ... Вывод - рихтовать плагин. Есть еще один выход, задать в QT приложении QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); тогда набор данных отображается. Только обязательно надо указывать имена колонок. Название: проблемы с QIBASE-драйвером Отправлено: Rainbow от Март 23, 2006, 13:48 Все имеет. Читать документацию. И все работает замечательно.
Вот только косяк был с блобами. Я писал как это пофиксить. Если надо будет, в посик! Название: Win1251->Cp866 Отправлено: Ggg_old от Март 23, 2006, 21:22 2 Модератор:
Что такое "посик":?: Насчет задания роли. Я в QT И Firebird недавно, но когда разбирался с этой проблемой прошлось посмотреть реализацию bool QIBaseDriver::open(...) там в общем не сложно, вот ключевые куски: Код:
Для задания роли надо еще прописать в описателе значение для isc_dpb_sql_role_name (IBASE API Guide) В общем это не сложно, еще добавить пару строк... Я пока забил на это и воспользовался ODBC. Название: проблемы с QIBASE-драйвером Отправлено: Rainbow от Март 27, 2006, 10:29 Ну и что ты этим сказать хочешь? А что тебе мешает создать хендл ч-з АРІ FB а объект БД сдалать на базе этого хендла?
Только ненадо мне расказывать сказки что в документации такого нет. Название: проблемы с QIBASE-драйвером Отправлено: odin от Февраль 19, 2007, 15:51 всем привет...... недавно писал диплом жене с использованием firebird и столкнулся со всеми вышеперечисленными проблемами..
И что в итоге 1. При записи данных в БД из своего же приложения глюки с русским отсутствуют.... 2. Если выполнять запрос к процедуре с использованием prepare - глюки отсутствуют даже если не указывать колонки... 3. Для и спользования ROLE помогла правка драйвера (запользовал неисольюзущийся connectionOption()) .... |