3

我正在尝试在我的 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

即使存在驱动程序QODBCQODBC3Qt 仍然无法加载QODBC驱动程序。

我正在运行 Windows 7(64 位)PC。

有没有人遇到过这样的错误?关于什么可能是错的任何线索?

4

1 回答 1

5

我发现这个问题是由于编译 odbc sql 驱动程序时使用了不正确的 Visual Studio 版本引起的。

我的电脑里有 VS 2008 和 VS 2010。我的 Qt5.0 使用的是 VS2010。但是当我编译odbc sql驱动时,我使用的是VS2008。这导致了问题。

Qt 能够检测到 sql odbc 驱动程序,但无法加载它。

我通过使用 VS2010 重新编译 odbc 驱动程序解决了这个问题,并且 odbc 驱动程序运行良好。

下面是在Qt 5.0中编译和使用sql odbc驱动的步骤

  1. 打开qt命令提示符:
  2. 这可以在 Qt 下的开始菜单中找到
  3. 设置vc++环境变量:

    • 为此,cd 到 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\ 文件夹并运行 vcvarsall.bat
      重要的一点是,使用 Qt 使用的相同版本的 Visual Studio 编译驱动程序.
  4. cd 进入 \Qt5.0.0\5.0.0\Src\qtbase\src\plugins\sqldrivers\odbc 源文件夹

  5. qmake odbc.pro

  6. nmake

    • 如果运行正确,编译后的 qsqlodbc.dll 和 qsqlodbcd.dll 将在 \Qt5.0.0\5.0.0\Src\qtbase\plugins\sqldrivers 文件夹中可用。
  7. 在部署基于 qt 的应用程序时,需要将 qsqlodbc.dll(发行版)复制到 sqldrivers 文件夹中。
于 2013-01-25T01:30:19.800 回答