在QT中使用MySQL資料庫
阿新 • • 發佈:2019-01-22
前篇已經寫了如何使用QT連結sqlite和SQLServer,見點選開啟連結
本次主要說明如何通過QT連結MySQL資料庫;
首先確保資料庫中存在Mysql的驅動,詳見QT安裝目錄中的plugins/sqldrivers資料夾下是否存在qsqlmysql.dll檔案。
首先在xxx.pro工程檔案中新增
- QT += sql
具體程式碼如下:
- QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
- // db.setDatabaseName("my.db");
- db.setHostName("128.110.110.110");
- db.setPort(3306);
- db.setDatabaseName("database");
- db.setUserName("root");
- db.setPassword("hello123");
- if (!db.open()) {
- QMessageBox::critical(0, "Cannot open database1",
- "Unable to establish a database connection.", QMessageBox::Cancel);
- returnfalse;
- }
注意:有時候存在即使有Mysql的驅動,仍然報錯
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
此時說明QT中自帶的Mysql的驅動不依賴,需要自己重新編譯。方法如下:當然可以參考這裡點選開啟連結
檔案是mysql-connector-c-6.1.10-win32(當然選擇適合自己作業系統的壓縮包)
之後解壓,在路徑中不要存在中文和空格,然後進入QT的安裝原始碼目錄中找到mysql的原始碼,進行編譯,
具體位於\Src\qtbase\src\plugins\sqldrivers\mysql該處,之後開啟QT的命令列,如圖:
然後執行:
- cd C:\qt-everywhere-opensource-src-5.4.0\qtbase\src\plugins\sqldrivers\mysql\
- qmake "INCLUDEPATH+=C:\MySQL\MySQLServer5.5\include""LIBS+=C:\MySQL\MySQLServer5.5\lib\libmysql.lib" -o Makefile mysql.pro
- mingw32-make
然後將Mysql的動態連結庫
- C:\MySQL\MySQLServer5.5\lib\libmysql.lib
大功告成。開始QT的Mysql之旅吧。
致謝