Russian Qt Forum
Ноябрь 23, 2024, 11:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Расширение функциональности драйвера QSQLiteDriver  (Прочитано 9707 раз)
kandrey
Гость
« Ответ #15 : Январь 25, 2014, 15:00 »

А как будет выглядеть решение для линукс и андроид ?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #16 : Январь 25, 2014, 15:03 »

Почему это не работает - сложно сказать. Какие-то побочные эффекты от дублирования кода в проекте и плагине. Возможно, разные распределители памяти, возможно, разные значения внутренних переменных.
Ребята, какие распределители памяти, какие разные значения переменных? Улыбающийся
Нужно подключать sqlite с теми же флагами, с которыми это делает Qt, а они перечислены в qtbase/src/3rdparty/sqlite.pri
Кстати, так ее подключать даже удобней. Улыбающийся

А использовать разделяемую библиотеку лучше, что бы избежать дублирование кода.

Записан
kandrey
Гость
« Ответ #17 : Январь 25, 2014, 15:21 »

т.е. в .pro файл приложения добавить

DEFINES += SQLITE_OMIT_LOAD_EXTENSION SQLITE_OMIT_COMPLETE SQLITE_ENABLE_FTS3 SQLITE_ENABLE_FTS3_PARENTHESIS SQLITE_ENABLE_RTREE
!contains(CONFIG, largefile):DEFINES += SQLITE_DISABLE_LFS
winrt: DEFINES += SQLITE_OS_WINRT

?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #18 : Январь 25, 2014, 15:32 »

т.е. в .pro файл приложения добавить

DEFINES += SQLITE_OMIT_LOAD_EXTENSION SQLITE_OMIT_COMPLETE SQLITE_ENABLE_FTS3 SQLITE_ENABLE_FTS3_PARENTHESIS SQLITE_ENABLE_RTREE
!contains(CONFIG, largefile):DEFINES += SQLITE_DISABLE_LFS
winrt: DEFINES += SQLITE_OS_WINRT

?

Попробуйте просто инклюдить sqlite.pri, вместо подключения sqlite.cpp|h
А если не получиться, то да - добавьте эту строку.
Записан
kandrey
Гость
« Ответ #19 : Январь 25, 2014, 15:47 »

Попробовал оба варианта. Все так же валится.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #20 : Январь 25, 2014, 15:50 »

Попробовал оба варианта. Все так же валится.
Выложите компилируемый проект.
Записан
kandrey
Гость
« Ответ #21 : Январь 25, 2014, 15:54 »

Архив проекта
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #22 : Январь 25, 2014, 16:58 »

Архив проекта
Да, беру свои слова назад, у меня тоже не получилось с наскоку запустить. С проблемой разбираться сейчас нет времени (думаю это из-за статической конфигурации), поэтому остается вариант с разделяемой библиотекой.
Записан
kandrey
Гость
« Ответ #23 : Январь 26, 2014, 14:23 »

мне кажется если подключать sqlite в проект то решение должно быть примерно таким

    QString dbName = "./test.db";
    sqlite3 *conn = 0;
    int openMode = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE;
    sqlite3_open_v2(dbName.toUtf8().constData(), &conn, openMode, NULL);
    QSQLiteDriver *sqliteDrv = new QSQLiteDriver(conn);
    QSqlDatabase db = QSqlDatabase::addDatabase(sqliteDrv);

только у меня ошибка undefined reference QSQLiteDriver, видимо из-за того что драйвер плагином подключен,..как решить пока не знаю
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 23.