Russian Qt Forum
Февраль 05, 2012, 21:38
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
(Модератор:
Sergeich
) >
Транзакции Interbase
Страниц:
1
2
[
3
]
4
5
...
12
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Транзакции Interbase (Прочитано 24339 раз)
Dimich
Новичок
Offline
Сообщений: 13
Re: Транзакции Interbase
«
Ответ #30 :
Январь 27, 2010, 09:11 »
axax,
можете ли Вы перелицензировать qtfirebirdibppsqldriver под LGPL или двойной LGPL/GPL лицензией?
Qt, начинас с версии 4.5, поддерживет лицензию LGPL, у IBPP BSD-подобная лицензия.
Многие дполнительные библиотеки к Qt перелицензировались под лицензией LGPL (Qwt, OpenRPT и т.д.). Может, логичнее было выпуск qtfirebirdibppsqldriver под лицензией LGPL?
Записан
sarbash
Чайник
Offline
Сообщений: 87
Re: Транзакции Interbase
«
Ответ #31 :
Февраль 12, 2010, 22:50 »
У меня установлена Qt версии 4.6.0
Попытался собрать плагин - собирается. Скопировал на место, пытаюсь запустить программу, получаю ошибку:
QSqlDatabase: QFIREBIRD driver not loaded
QSqlDatabase: available drivers: QIBASE QSQLITE QODBC3 QODBC
D:\projects\irr-ad\debug\irr-ad.exe завершился с кодом 1
Подскажите, пожалуйста, что сделать, чтобы он заработал?
Вроде бы правильно положил библиотеки:
%QTDIR%\plugins\sqldrivers\qsqlibase4.dll
%QTDIR%\plugins\sqldrivers\libqsqlibase4.a
В программе вызов делается так:
Код:
bool create_connection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QFIREBIRD");
db.setConnectOptions("ISC_DPB_LC_CTYPE=UTF8");
// TODO после отладки установить пусть к бд:
// db.setDatabaseName(qApp->applicationDirPath() + "db/IRR-AD.FDB");
db.setDatabaseName("../db/IRR-AD.FDB");
db.setUserName("sysdba");
if (!db.open()) {
QMessageBox::critical(0, qApp->applicationName(),
QString("Не удалось соединиться с БД:\n%1").arg(
db.lastError().databaseText()));
return false;
}
return true;
}
Записан
В главном - единство, во второстепенном - свобода, во всём - любовь.
ax
Чайник
Offline
Сообщений: 55
Re: Транзакции Interbase
«
Ответ #32 :
Февраль 13, 2010, 01:30 »
Цитата: sarbash от Февраль 12, 2010, 22:50
...
QSqlDatabase: available drivers: QIBASE QSQLITE QODBC3 QODBC
...
%QTDIR%\plugins\sqldrivers\qsqlibase4.dll
%QTDIR%\plugins\sqldrivers\libqsqlibase4.a
...
В программе вызов делается так:
Код:
QSqlDatabase db = QSqlDatabase::addDatabase("QFIREBIRD");
...
судя по всему ты собрал драйвер для IBASE из самого Qt.
Сырцы и собранные dll QFIREBIRD лежат на
http://code.google.com/p/qtfirebirdibppsqldriver/
Записан
sarbash
Чайник
Offline
Сообщений: 87
Re: Транзакции Interbase
«
Ответ #33 :
Февраль 13, 2010, 10:24 »
Если бы всё так просто было...
Поскипаем неважное...
Код:
Содержимое папки C:\devel\Qt\2009.05\qt\plugins\sqldrivers
...
12.02.2010 22:29 2 200 libqsqlfirebird.a
...
12.02.2010 22:29 833 536 qsqlfirebird.dll
...
15 файлов 5 451 375 байт
2 папок 17 727 313 408 байт свободно
собирал из
Код:
svn checkout http://qtfirebirdibppsqldriver.googlecode.com/svn/trunk/ qtfirebirdibppsqldriver-read-only
Почему не видит не подхватывает - ума не приложу... попробую обновиться до 4.6.1
Постом выше я привёл функцию по установке коннекта - разве я там неправильно написал?
Записан
В главном - единство, во второстепенном - свобода, во всём - любовь.
gigabyte
Гость
Re: Транзакции Interbase
«
Ответ #34 :
Февраль 13, 2010, 10:58 »
Переименуй
libqsqlfirebird.a -> libqsqlfirebirdd.a
qsqlfirebird.dll -> qsqlfirebirdd.dll
И убедись что ти собираешь именно debug!!!!!
Записан
sarbash
Чайник
Offline
Сообщений: 87
Re: Транзакции Interbase
«
Ответ #35 :
Февраль 13, 2010, 13:31 »
Большое спасибо, простите за мою глупость, нельзя столько работать (это я о себе)...
Проблема была в том, что для драйвера собран был релиз (это по-умолчанию настроено), а рабочий проект с использованием драйвера собирается в дебаг-версии. Естественно, драйвер не был найден, а я вчера бился и понять не мог, что делаю не так. Вопрос решён, всем большое спасибо за участие!
Искренне благодарен за плагин, т.к. неизбежно пришлось бы самому писать, если бы не было готового. То, что идёт в комплекте, -- жалкое убожество, особенно после дельфёвых IBX компонент.
2gigabyte: Особая благодарность, Вы навели меня на верную мысль. А то у меня уже ум за разум заходить начал, но это личные проблемы, оффтоп.
P.S. Осталось разобраться с кодировками...
Код:
Запускается D:\projects\irr-ad\debug\irr-ad.exe...
HookingD:\PROJECTS\IRR-AD\DEBUG\IRR-AD.EXE
D:\PROJECTS\IRR-AD\DEBUG\IRR-AD.EXERPH:Injecting code at start up
done...
QFBDriver::open: Unknown connection attribute 'ISC_DPB_LC_CTYPE=UTF8'
D:\projects\irr-ad\debug\irr-ad.exe завершился с кодом 0
Записан
В главном - единство, во второстепенном - свобода, во всём - любовь.
sarbash
Чайник
Offline
Сообщений: 87
Re: Транзакции Interbase
«
Ответ #36 :
Февраль 13, 2010, 13:36 »
Цитата: axax от Февраль 13, 2010, 01:30
Цитата: sarbash от Февраль 12, 2010, 22:50
...
QSqlDatabase: available drivers: QIBASE QSQLITE QODBC3 QODBC
...
%QTDIR%\plugins\sqldrivers\qsqlibase4.dll
%QTDIR%\plugins\sqldrivers\libqsqlibase4.a
...
В программе вызов делается так:
Код:
QSqlDatabase db = QSqlDatabase::addDatabase("QFIREBIRD");
...
судя по всему ты собрал драйвер для IBASE из самого Qt.
Сырцы и собранные dll QFIREBIRD лежат на
http://code.google.com/p/qtfirebirdibppsqldriver/
Прошу прощения, я ввёл Вас в заблуждение, на самом деле я собирал естественно Ваш драйвер, а сюда ошибочно запостил листинг того, что в комплекте идёт. Я его до этого собирал. Это я вчера просто загнался, ещё раз простите великодушно. Я теперь уже разобрался, в чём был неправ.
Записан
В главном - единство, во второстепенном - свобода, во всём - любовь.
gigabyte
Гость
Re: Транзакции Interbase
«
Ответ #37 :
Февраль 13, 2010, 13:47 »
Цитировать
P.S. Осталось разобраться с кодировками...
см. Исходники драйвера и вместо
Код:
database.setConnectOptions("ISC_DPB_LC_CTYPE=WIN1251");
попробуй
Код:
database.setConnectOptions("CHARSET=WIN1251");
Записан
sarbash
Чайник
Offline
Сообщений: 87
Re: Транзакции Interbase
«
Ответ #38 :
Февраль 13, 2010, 16:58 »
Уже. Как я понял, здесь сорцы выступают в качестве мануала.
Записан
В главном - единство, во второстепенном - свобода, во всём - любовь.
sarbash
Чайник
Offline
Сообщений: 87
Re: Транзакции Interbase
«
Ответ #39 :
Февраль 13, 2010, 17:38 »
Цитата: gigabyte от Февраль 13, 2010, 10:58
Переименуй
libqsqlfirebird.a -> libqsqlfirebirdd.a
qsqlfirebird.dll -> qsqlfirebirdd.dll
И убедись что ти собираешь именно debug!!!!!
Вместо этого я разные таргеты в проекте указал для дебага и релиза, там в issue на гуглокоде есть по этому поводу.
Записан
В главном - единство, во второстепенном - свобода, во всём - любовь.
ax
Чайник
Offline
Сообщений: 55
Re: Транзакции Interbase
«
Ответ #40 :
Февраль 15, 2010, 19:28 »
Обновленная версия Qt SQL driver for Firebird with IBPP library.
http://code.google.com/p/qtfirebirdibppsqldriver
Изменения в версии 0.15
- fixed Produce different targets depengind on config (Debug Release) ( Issue 6 )
+ license under LGPL version 2.1
+ license under GPL version 3.0
Спасибо за пожелания и исправления.
Новые принимаются на
http://code.google.com/p/qtfirebirdibppsqldriver/issues/list
и на форуме.
Записан
arial
Новичок
Offline
Сообщений: 32
Re: Транзакции Interbase
«
Ответ #41 :
Февраль 16, 2010, 15:30 »
У меня с Qt SQL driver for Firebird with IBPP library косяк.
В базе есть поле NUMERIC(6, 3).
QFIREBIRD возвращает его, как QVariant(int), а вот QIBASE возвращает, как положено, QVariant(double).
Т.е., если в БД хранится число 3,14, то QFIREBIRD возвращает QVariant(int, 3140), QIBASE, как положено, вернёт QVariant(double, 3.14).
Записан
gigabyte
Гость
Re: Транзакции Interbase
«
Ответ #42 :
Февраль 16, 2010, 21:59 »
>axax
Думаю следует обратить внимание на qIBaseTypeName2 в исходниках родного interbase драйвера
Записан
arial
Новичок
Offline
Сообщений: 32
Re: Транзакции Interbase
«
Ответ #43 :
Февраль 25, 2010, 15:43 »
Может уважаемый
axax
как-то прокомментирует пост о
проблеме с полем numeric
?
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3293
Re: Транзакции Interbase
«
Ответ #44 :
Февраль 25, 2010, 17:41 »
arial, напиши ему в ГуглоКод, может он там чаще мониторит
Записан
Юра.
Страниц:
1
2
[
3
]
4
5
...
12
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> Печать
=> Интернационализация, локализация
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
=> Архив
===> Программирование
=====> Python
===> Веб программирование
=====> PHP, PERL, CGI
Загружается...