http://heweiding155.iteye.com/blog/1393894
qt由於授權許可的限制,Qt的開源版本沒有提供所有資料庫的驅動程式。免費下載的中只含有QSQLITE也就是SQLite的驅動程式,要想與mysql或oracle等串連需要自己編譯其驅動。
由於種種問題,經曆各種重裝,各種失敗,本人用了兩天才成功用qt串連上了mysql資料庫。(看網上其他教程都是分分鐘搞定 -_-!!) 在這裡也寫一下自己的經曆。
下邊開始本文:
一.下載mysql http://dev.mysql.com/downloads/ 目前最新版本5.5。
二.安裝mysql 安裝時不能選擇Typical型,這樣會缺少庫檔案(include和lib檔案夾)。啥都不管直接選擇FUll型。
三.將mysql安裝目錄下的include和lib兩個檔案夾拷貝到qt\4.7.4\src\plugins\sqldrivers\mysql下。可以自己建立一個目錄如mysqllib。
四.修改mysql.pro檔案,在第二行添加如下內容
INCLUDEPATH +="./mysqllib/include"
LIBS+="./mysqllib/lib/libmysql.lib"
五.將QT的bin目錄和mingw的目錄都添加到環境變數的path中。
六.運行qt 4.7.4 Command Prompt 輸入以下命令(路徑自己注意修改)
cd qt\4.7.4\src\plugins\sqldrivers\mysql
qmake
mingw32-make release
mingw32-make debug
執行qmake後沒有返回結果,只是在mysql目錄下產生了debug和release的makefile檔案Makefile.Debug和Makefile.Release。
全部執行完後,將release下的libqsqlmysql4.a,qsqlmysql4.dll和debug下的libqsqlmysqld4.a,libqsqlmysqld4.dll 拷貝至
QtSDK\Desktop\Qt\4.7.4\mingw\plugins\sqldrivers
目錄下
七.將mysql的庫檔案libmysql.dll拷貝到QtSDK\Desktop\Qt\4.7.4\mingw\bin 目錄下
接下來運行一個例子看驅動是否裝好:
建立一個qt gui 控制台項目SQLtest
在SQLtest.pro中加入QT +=sql
接著修改main.cpp如下
#include<QtCore/QCoreApplication>
#include<QtSql>
intmain(intargc,char*argv[])
{
QCoreApplicationa(argc,argv);
qDebug()<<"Availabledrivers:";
QStringListdrivers=QSqlDatabase::drivers();
foreach(QStringdriver,drivers)
qDebug()<<"\t"<<driver;
qDebug()<<"End";
returna.exec();
}
執行程式輸出為:
Available drivers:
"QSQLITE"
"QMYSQL3"
"QMYSQL"
EndVS編寫Qt介面程式如何不出現控制台在項目解決方案的屬性頁面裡,連接器->系統->子系統裡選擇<windows>,
這樣再重建解決方案,重新編譯就不會出現煩人的控制台了
但是這個控制台在調試的時候還是非常方便的。