Qt 5 ODBC驱动程序问题

时间:2013-01-08 01:48:02

标签: qt odbc qt5

我正在尝试在我的一个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,则会遇到相同的错误。

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

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

有人遇到过这样的错误吗?什么可能是错的线索?

1 个答案:

答案 0 :(得分: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. 下的开始菜单中找到
  4. 设置vc ++环境变量:

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

  6. qmake odbc.pro

  7. nmake

    • 如果运行正常,则编译qsqlodbc.dll和qsqlodbcd.dll 将在\ Qt5.0.0 \ 5.0.0 \ Src \ qtbase \ plugins \ sqldrivers文件夹中提供。
  8. 在部署基于qt的应用程序时,需要将qsqlodbc.dll(发行版)复制到sqldrivers文件夹。