3

我的应用程序以这种方式使用 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 插件机制。

4

1 回答 1

3

创建这个目录结构,就像在安装了 qt 的电脑上一样。

your.app.dir/plugins/your.plugin.folder(即your.plugin.folder是sqldrivers)

将您的插件复制到 your.app.dir/plugins/your.plugin_folder 下

然后添加此代码

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

我希望这有帮助。

于 2011-06-02T12:31:08.593 回答