Развертывание приложения Qt ODBC - PullRequest
3 голосов
/ 02 июня 2011

Мое приложение использует Qt SQL таким образом

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};DBQ="+QDir::currentPath()+"/database.mdb");

и все остальное делается с помощью QSqlRelationalTableModel.

Теперь, когда наступил этап развертывания, приложение прекрасно работает в системе, где установлен Qt (4.6.3), но в другой чистой системе возникает эта ошибка при загрузке базы данных

"Driver not loaded"

Я знаю, что это как-то связано с копированием плагинов ODBC ... но просто копированием qsqlodbc4.dll в каталог приложения и

qApp->addLibraryPath(QDir::currentPath());

не работает !!

Какое решение для этого ?

Примечание: приложение не связано с DLL драйвера, оно использует механизм плагинов Qt.

1 Ответ

3 голосов
/ 02 июня 2011

Создайте эту структуру каталогов так же, как это было на ПК с установкой qt.

your.app.dir / plugins / your.plugin.folder (т. Е. Your.plugin.folder - sqldrivers)

Скопируйте ваш плагин в папку your.app.dir / plugins / your.plugin_folder

Затем добавьте этот код

qApp->addLibraryPath( qApp->applicationDirPath() + "/plugins");

Надеюсь, это поможет.

...