这有点老了,但我遇到了类似的问题才能让它工作。我也通过谷歌在这里找到了这个,所以可能还有其他人面临同样的问题。
顺便说一句: $QTDIR 是由您更改以适应您的配置。
我使用了 Qt 5.7.1、IBM 的 DB2 Express-C 版本 11.1 和针对 x64 编译的 Visual Studio 2015 Update 3。这些说明来自我的相应博客文章。
确保你已经安装了所有东西。我使用以下路径:
C:\Qt\5.7\msvc2015_64\bin: location of the build tool qmake
C:\Qt\5.7\Src: location of Qt's source code (default location when the sources are fetched with the maintenance tool)
C:\Program Files\IBM\SQLLIB: location inside IBM's install directory where the sql library is located
如果您使用不同的路径,请在以下构建说明中相应地调整它们。
Qt 5.7.1 中存在一个错误(在 Qt 5.8.0 中似乎已修复),因此需要调整源。打开文件C:\Qt\5.7\Src\qtbase\src\sql\drivers\db2\qsql_db2.cpp
并将第 1190d->hEnv = reinterpret_cast<SQLHANDLE>(env);
行更改为,将第 1191 行更改为d->hDbc = reinterpret_cast<SQLHANDLE>(con);
使用管理权限打开 Visual Studio 命令行提示符(VS2015 x64 Native Tools-Eingabeaufforderung öffnen)
cd
到目录C:\Qt\5.7\Src\qtbase\src\plugins\sqldrivers\db2
运行命令C:\Qt\5.7\msvc2015_64\bin\qmake "INCLUDEPATH+=C:/progra~1/IBM/SQLLIB/include" "LIBS+=C:/progra~1/IBM/SQLLIB/lib/db2cli.lib"
4.1。调整路径,如果您已将 DB2 安装到不同的目录
4.2. 确保您替换Program Files
为progra~1
(否则可能会由于空间而出现一些问题)
运行C:\Qt\5.7\Src\qtbase\src\plugins\sqldrivers\db2>nmake
以构建库。可能会有一些警告,但它应该仍然有效。如果成功,生成的库应位于C:\Qt\5.7\Src\qtbase\plugins\sqldrivers
运行C:\Qt\5.7\Src\qtbase\src\plugins\sqldrivers\db2>nmake
install 以便将生成的库复制到C:\Qt\5.7\msvc2015_64\plugins\sqldrivers
启动 Qt Creator,打开 sqlbrowser 示例项目,构建并运行它。如果成功,您现在应该能够从列表中选择 QDB2 驱动程序并连接到您的数据库