QT4未加载ODBC驱动程序

问题描述:

我创建新的应用程序与QTSDK(最新版本),该程序使用ODBC数据库连接,但是当我尝试添加数据库中,我得到了错误:QT4未加载ODBC驱动程序

QSqlDatabase: QODBC driver not loaded 
QSqlDatabase: available drivers: QSQLITE 

当我这样做:

QStringList driversList = QSqlDatabase::drivers(); 
qDebug() << "drivers list= " << driversList; 

我说我只有列表中的qsqlite。 第一次得到这个错误后,我记得在这台电脑上我没有构建odbc插件,于是我去插件并做了“qmake; name”。之后,我得到了qsqlodbc4.dll和“qsqlodbc.intermediate.manifest”

因此,当我在.exe的同一文件夹中创建“sqldrivers”文件夹时,将这两个odbc文件复制到那里,并仍然出现相同的错误。 使用QtCreator创建的程序,并从那里运行并直接执行时具有相同的驱动程序列表(qsqlite)。 任何人都可以获取下一步看什么?

当我看看进程列表时,我可以看到这个程序运行为32位(“program.exe * 32”)。而Windows是64,也许有加载的问题?

+0

当从QtCreator开始:开始d:\项目\程序\程序 - 构建 - 模拟器Simulator_Qt_for_Visual_Studio_2005__Qt_SDK__Release \释放\ Program.exe文件(以防万一它可以帮助) – Dainius 2012-02-21 20:44:23

+0

当副本的Program.exe(QT的DLL和sqldrivers/qsqlodbc4 .dll)到闪存驱动程序并从那里得到相同的驱动程序列表(qsqlite),但如果我尝试在其他计算机上运行它,我得到空的驱动程序列表。对我来说,它看起来像尝试加载一些特殊的文件夹,而不是当前的程序文件夹。 – Dainius 2012-02-21 21:26:29

卸载所有QTSDK,再次只安装了4.7.4版本的MS Visual Studio 2005中(开源和桌面)。 建立SQL驱动程序,现在他们的工作。 我的问题是,当我第一次编译时,有几个不同的版本和驱动程序被建立不好(不知何故),因此他们没有加载。

我不熟悉ODBC但当忘记秀Qt的我已经与MySQL相关的问题lib_mysql.lib

+0

我看到这是mysql驱动程序的基本问题,但我没有阅读关于任何特殊odbc库的任何地方。在使用Qt3和odbc创建类似程序时,不能记住任何特殊的库。 – Dainius 2012-02-21 20:31:30

+0

你有'%QTDIR%\ plugins \ sqldrivers \ qsqlodbc4.dll'吗?首先这个DLL的发布版本,你使用相同的;其次你加载QtSql4.dll? – triclosan 2012-02-21 20:36:40

+0

两者都可以。而当QtSql4.dll缺少程序很早就显示错误。我甚至试过QTPLUGIN + = qsqlodbc4并将qsqlodbc4.lib(和exp)文件放到lib文件夹中,但驱动程序列表仍然相同。 – Dainius 2012-02-21 20:41:07