2011年4月21日 星期四

MySQL in Qt

1.下載 MySQL, 建議下載 noinstall 版本, 解壓縮後將 include 及 lib 取出.

2.下載 mingw-utils, 建議下載此連結版本, 較新的版本似乎會有問題. 解壓縮後將其中的 reimp.exe 複製到 C:\Qt\2010.05\mingw\bin 資料夾內.

3.執行 Qt Command Prompt, 輸入以下指令:
  cd C:\Lib\MySQL-5.1.56\lib\opt
  reimp -d libmysql.lib
  dlltool -k -d libmysql.def -l libmysql.a (PS:-l 是小寫的 L)

4.將執行後產生的 libmysql.a 複製到 C:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql 資料夾內.

5.回到 Qt Command Prompt, 輸入以下指令:
  cd C:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql
  qmake -o Makefile "INCLUDEPATH+=C:\Lib\MySQL-5.1.56\include" "LIBS+=C:\Lib\MySQL-5.1.56\lib\opt\libmysql.a" mysql.pro
  mingw32-make

6.複製 C:\Lib\MySQL-5.1.56\lib\opt\libmysql.dll 到 C:\Qt\2010.05\mingw\bin 資料夾內.

範例如下:
#include <QtSql>

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("demo");
db.setUserName("root");
db.setPassword("123456");
if(db.open())
  QMessageBox::information(this, "information", "Connected to database", QMessageBox::Ok, QMessageBox::Ok);
else
  QMessageBox::information(this, "error", "Connection fail", QMessageBox::Ok, QMessageBox::Ok);

PS:在 pro 檔要加入 QT += sql.


參考來源:
1.Qt4 Gossip: Qt 的 MySQL  驅動程式
2.How to build the QMYSQL plugin under Windows using MinGW

沒有留言:

張貼留言