Qt 5 ODBC驱动程序问题

Mug*_*nth 3 qt odbc qt5

我试图在我的一个Qt5项目中使用ODBC驱动程序.

我编译QODBC驱动程序并将驱动程序dll复制到Qt\Qt5.0.0\5.0.0\msvc2010\plugins\sqldrivers文件夹.

当我尝试以下代码时:

 QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3
Run Code Online (Sandbox Code Playgroud)

如果我尝试加载,会遇到相同的错误QODBC3.

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

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

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

Mug*_*nth 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 ++环境变量:

    • 为此,请进入C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC \文件夹并运行vcvarsall.bat
      需要注意的重要一点是,使用Qt使用的相同版本的Visual Studio编译驱动程序.
  4. 进入\ 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文件夹.