2013-01-08 128 views
3

我想在我的Qt5項目中使用ODBC驅動程序。Qt 5 ODBC驅動程序問題

我編譯了QODBC驅動程序並將驅動程序dll複製到Qt \ Qt5.0.0 \ 5.0.0 \ msvc2010 \ plugins \ sqldrivers文件夾中。

當我嘗試下面的代碼:

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); 

我收到以下錯誤:如果我試圖加載QODBC3遇到

QSqlDatabase: QODBC driver not loaded 
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 

同樣的錯誤。

儘管驅動程序存在QODBCQODBC3,但Qt仍然無法加載驅動程序QODBC

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

有沒有人遇到過這樣的錯誤?任何線索可能是錯誤的?

回答

4

我發現這個問題是由於在編譯odbc sql驅動時使用了不正確的Visual Studio版本造成的。

我的電腦裏有VS 2008和VS 2010。我的Qt5.0使用VS2010。但是當我編譯odbc sql驅動程序時,我使用了VS2008。這導致了這個問題。

Qt能夠檢測到sql odbc驅動程序,但無法加載它。

我通過使用VS2010重新編譯odbc驅動程序和odbc驅動程序完美地工作,解決了這個問題。

以下是編譯和Qt中使用SQL ODBC驅動程序5.0

  1. 開放QT命令提示符的步驟:
  2. 這可以在開始菜單的Qt下找到
  3. 一套VC++環境變量:

    • 爲此,請進入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 \插件\ sqldrivers \ ODBC源文件夾

  5. qmake odbc.pro

  6. nmake

    • 如果它運行正確,編譯的qsqlodbc.dll和qsqlodbcd.dll 將在\ Qt5.0.0 \ 5.0.0 \ Src \ qtbase \ plugins \ sqldrivers fol中可用DER。
  7. 在部署基於qt的應用程序時,需要將qsqlodbc.dll(發行版)複製到sqldrivers文件夾中。