2012-02-21 143 views
0

我創建新的應用程序與QTSDK(最新版本),該程序使用ODBC數據庫連接,但是當我嘗試添加數據庫中,我得到了錯誤:QT4未加載ODBC驅動程序

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

當我這樣做:

QStringList driversList = QSqlDatabase::drivers(); 
qDebug() << "drivers list= " << driversList; 

我說我只有列表中的qsqlite。 第一次得到這個錯誤後,我記得在這臺電腦上我沒有構建odbc插件,於是我去插件並做了「qmake; name」。之後,我得到了qsqlodbc4.dll和「qsqlodbc.intermediate.manifest」

因此,當我在.exe的同一文件夾中創建「sqldrivers」文件夾時,將這兩個odbc文件複製到那裏,並仍然出現相同的錯誤。 使用QtCreator創建的程序,並從那裏運行並直接執行時具有相同的驅動程序列表(qsqlite)。 任何人都可以獲取下一步看什麼?

當我看看進程列表時,我可以看到這個程序運行爲32位(「program.exe * 32」)。而Windows是64,也許有加載的問題?

+0

當從QtCreator開始:開始d:\項目\程序\程序 - 構建 - 模擬器Simulator_Qt_for_Visual_Studio_2005__Qt_SDK__Release \釋放\ Program.exe文件(以防萬一它可以幫助) – Dainius 2012-02-21 20:44:23

+0

當副本的Program.exe(QT的DLL和sqldrivers/qsqlodbc4 .dll)到閃存驅動程序並從那裏得到相同的驅動程序列表(qsqlite),但如果我嘗試在其他計算機上運行它,我得到空的驅動程序列表。對我來說,它看起來像嘗試加載一些特殊的文件夾,而不是當前的程序文件夾。 – Dainius 2012-02-21 21:26:29

回答

0

卸載所有QTSDK,再次只安裝了4.7.4版本的MS Visual Studio 2005中(開源和桌面)。 建立SQL驅動程序,現在他們的工作。 我的問題是,當我第一次編譯時,有幾個不同的版本和驅動程序被建立不好(不知何故),因此他們沒有加載。

0

我不熟悉ODBC但當忘記秀Qt的我已經與MySQL相關的問題lib_mysql.lib

+0

我看到這是mysql驅動程序的基本問題,但我沒有閱讀關於任何特殊odbc庫的任何地方。在使用Qt3和odbc創建類似程序時,不能記住任何特殊的庫。 – Dainius 2012-02-21 20:31:30

+0

你有'%QTDIR%\ plugins \ sqldrivers \ qsqlodbc4.dll'嗎?首先這個DLL的發佈版本,你使用相同的;其次你加載QtSql4.dll? – triclosan 2012-02-21 20:36:40

+0

兩者都可以。而當QtSql4.dll缺少程序很早就顯示錯誤。我甚至試過QTPLUGIN + = qsqlodbc4並將qsqlodbc4.lib(和exp)文件放到lib文件夾中,但驅動程序列表仍然相同。 – Dainius 2012-02-21 20:41:07