Russian Qt Forum

Программирование => Базы данных => Тема начата: LisandreL от Ноябрь 15, 2011, 00:19



Название: [РЕШЕНО] QSQLITE driver not loaded
Отправлено: LisandreL от Ноябрь 15, 2011, 00:19
Извините, что взываю к помощи экстрасенсов.
Есть сравнительно большой проект.
И вот в один не особо прекрасный день он перестал подхватывать sqldrivers/qsqlite4.dll
То есть на компьютере, где установлен кьют всё прекрасно, но стоит взять чистый компьютер (или просто переименовать папку QtSDK) и драйвер не загружается.

Тестовый пример прекрасно подхватывает драйвер из sqldrivers/qsqlite4.dll, что впрочем до определённого момента делал и сам проект.

Может будут хотя бы идеи из-за чего это может происходить. Из-за порядка инициализации чего-то? Из-за изменения приложением текущей папки?..


Название: Re: QSQLITE driver not loaded
Отправлено: andrew.k от Ноябрь 15, 2011, 00:28
попробуй положить плагин рядом с приложением в директорию sqldrivers

Т.е. вот так:

Код:
/sqldrivers/qsqlite4.dll
/app.exe


Название: Re: QSQLITE driver not loaded
Отправлено: andrew.k от Ноябрь 15, 2011, 00:30
или у тебя тестовый пример работает, а приложение нет?
или оба теперь не работают?


Название: Re: QSQLITE driver not loaded
Отправлено: LisandreL от Ноябрь 15, 2011, 00:33
попробуй положить плагин рядом с приложением в директорию sqldrivers

Т.е. вот так:

Код:
/sqldrivers/qsqlite4.dll
/app.exe
Именно так оно и лежит.
Не находит драйвер.
На тестовом мини-проекте работает, на основном - нет.


Название: Re: QSQLITE driver not loaded
Отправлено: andrew.k от Ноябрь 15, 2011, 00:37
Тогда, конечно, смотри текущую папку.
Если у тебя она меняется, как же он ее найдет?


Название: Re: QSQLITE driver not loaded
Отправлено: andrew.k от Ноябрь 15, 2011, 00:45
или раз уж меняешь текущую директорию клади в $QTDIR/plugins/sqldrivers/qsqlite4.dll
хотя он и так должен там лежать по идее, если qt установлен.


Название: Re: QSQLITE driver not loaded
Отправлено: andrew.k от Ноябрь 15, 2011, 00:48
сейчас посмотрел в dll dependency qsqlite4.dll
Там вот что (проверь, что у тебя все на месте):
Код:
mingwm10.dll
libgcc_s_dw2-1.dll
QtCore4.dll
QtSql4.dll


Название: Re: QSQLITE driver not loaded
Отправлено: LisandreL от Ноябрь 15, 2011, 01:04
Да, ещё gui и network.

Цитировать
или раз уж меняешь текущую директорию клади в $QTDIR/plugins/sqldrivers/qsqlite4.dll
Не ствить же на все компы Qt в нагрузку к программе...
Да и папку я по идее не должен менять, просто была идея "а вдруг", но проверка показывает, что всё нормально.

Видать прийдётся в svn-е искать последнюю работавшую версию и пытаться по диффам понять, что же я сломал.


Название: Re: QSQLITE driver not loaded
Отправлено: LisandreL от Ноябрь 15, 2011, 09:22
Разобрался. Проблема возникала из-за обращения к БД до создания QApplication.
Пути к этому моменту ещё не инициализированнный и драйвер не находится. Повторно искать его программа уже не пытается.