Russian Qt Forum

Qt => Базы данных => Тема начата: gelo от Ноябрь 25, 2006, 10:19



Название: qt + sqlite
Отправлено: gelo от Ноябрь 25, 2006, 10:19
Мог бы кто дать пример использования qt вместе с sqlite? Не знаю как начать :(


Название: qt + sqlite
Отправлено: Tonal от Ноябрь 25, 2006, 13:06
$(QTDIR)/demos/sqlbrowser
$(QTDIR)/examples/sql


Название: qt + sqlite
Отправлено: gelo от Ноябрь 25, 2006, 13:19
И еще один момент. Никак не получается собрать драйвер и плагин для sqlite. Использую opensource версию, но собираю ее под VS2005. Все собралось без проблем, но в дирректории plugins нет sqldrivers :(


Название: qt + sqlite
Отправлено: Dendy от Ноябрь 25, 2006, 19:24
Он линкуется статически в QtSql модуль (по умолчанию). Поиск по драйверам сначала происходит по статическим плагинам, а потом только по динамическим. Так что должно всё работать и так.


Название: qt + sqlite
Отправлено: gelo от Ноябрь 25, 2006, 23:20
Что-то не получается :(
Попробовал следующий пример:

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(":memory:");
db.open();

open() возвращает false


Название: qt + sqlite
Отправлено: Dendy от Ноябрь 26, 2006, 00:01
Пишет ли при

Код:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");


ошибку в output?


Название: qt + sqlite
Отправлено: gelo от Ноябрь 26, 2006, 00:06
не знаю. Консоль то не видна.


Название: qt + sqlite
Отправлено: Dendy от Ноябрь 26, 2006, 00:36
Так включить консоль:
CONFIG += console


Название: qt + sqlite
Отправлено: gelo от Ноябрь 26, 2006, 22:13
Пишет:
QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:


Название: qt + sqlite
Отправлено: C.H. от Ноябрь 27, 2006, 22:16
у тебя QT как-то криво собрана, у меня все работает хорошо.
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("memory");
db.open();


Название: qt + sqlite
Отправлено: Dendy от Ноябрь 27, 2006, 23:32
Немного не так.

Код:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
db.setDatabaseName(":memory:");
db.open();


Но ругаться должно уже на первой строчке. СамьІй простой способ проверить влинкована ли Lite статически - посмотреть включён ли макрос:

Код:
#ifdef QT_SQL_SQLITE
SQLITE is static linked into QtSql
#endif


Название: qt + sqlite
Отправлено: gelo от Ноябрь 27, 2006, 23:57
Странно. В release все работает, а в debug net. Хотя пересобрал qt по новой.

добавлено спустя 4 минуты:

 #ifdef QT_SQL_SQLITE
дает TRUE


Название: qt + sqlite
Отправлено: Dendy от Ноябрь 28, 2006, 12:02
В debug дебажишь внутрь кода и смотришь почему именно не работает.