我正在尝试在我的一个Qt5项目中使用ODBC驱动程序。
我编译了QODBC驱动程序,并将驱动程序dll复制到Qt\Qt5.0.0\5.0.0\msvc2010\plugins\sqldrivers文件夹中。
当我尝试以下代码时:
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");我得到以下错误:
QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3如果我尝试加载QODBC3,也会遇到同样的错误。
即使存在QODBC和QODBC3驱动程序,Qt仍然无法加载QODBC驱动程序。
我运行的是Windows 7 (64位) PC。
有谁遇到过这样的错误吗?有什么问题的线索吗?
发布于 2013-01-25 09:30:20
我发现这个问题是由于编译odbc sql驱动程序时使用了不正确的Visual studio版本造成的。
我的电脑里有VS2008和VS2010。我的Qt5.0使用的是VS2010。但是,当我编译odbc sql驱动程序时,我使用的是VS2008。这就导致了这个问题。
Qt能够检测到sql odbc驱动程序,但无法加载它。
我通过使用VS2010重新编译odbc驱动程序解决了这个问题,并且odbc driver工作得很好。
以下是在Qt 5.0中编译和使用sql odbc驱动程序的步骤
- To do this , cd into to the C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\ folder and run vcvarsall.bat需要注意的重要一点是,使用与Qt相同的Visual Studio版本编译驱动程序。
在\Qt5.0.0\5.0.0\Src\qtbase\src\plugins\sqldrivers\odbc源folder
qmake odbc.pro
nmake 中使用
- If it runs correctly, the compiled qsqlodbc.dll and qsqlodbcd.dll will be available in \Qt5.0.0\5.0.0\Src\qtbase\plugins\sqldrivers folder.
https://stackoverflow.com/questions/14207088
复制相似问题