1. 程式人生 > >Qt添加驅動——Qt數據庫之添加MySQL驅動插件

Qt添加驅動——Qt數據庫之添加MySQL驅動插件

ava blog 大小 mysql驅動 SQ 文件 編譯程序 1.4 cati

Qt數據庫之添加MySQL驅動插件(1)

現在可用的數據庫驅動只有3種,在Qt中,我們需要自己編譯其他數據庫驅動的代碼,讓它們以插件的形式來使用。下面我們就以現在比較流行的MySQL數據庫為例,說明一下怎樣在Qt Creator中添加數據庫驅動插件。在講述之前,我們先看一下Qt Creator中數據庫的插件到底放在哪裏。

我們進入Qt Creator的安裝目錄,然後進入相對應的文件夾下,比方我這裏是


  1. D:Qt2010.02.1qtpluginssqldrivers

在這裏我們可以看見幾個文件,如下圖:

技術分享圖片

<根據名字中的關鍵字,我們可以判斷出這就是ODBC數據庫和SQLite數據庫的驅動插件。下面我們編譯好MySQL數據庫驅動後,也會在這裏出現相對應的文件。

首先:我們查看怎樣安裝數據庫插件。

我們打開Qt Creator,在幫助中搜索SQL Database Drivers關鍵字。這裏列出了編譯Qt支持的所有數據庫的驅動的方法。

我們下拉到在windows上編譯QMYSQL數據庫插件的部分,其內容如下:

技術分享圖片

這裏詳細介紹了整個編譯的過程,其可以分為以下幾步:

第一,下載MySQL的安裝程序,在安裝時選擇定制安裝,這時選中安裝Libs和Include文件。安裝位置可以是C:MySQL 。

註意:安裝位置不建議改動,因為下面進行編譯的命令中使用了安裝路徑,如果改動,那麽下面也要進行相應改動。

第二,進行編譯。我們按照實際情況輸入的命令如下。


  1. cd%QTDIR%srcpluginssqldriversmysql
  2. qmake“INCLUDEPATH+=C:MySQLinclude”“LIBS+=C:MySQLliboptlibmysql.lib”mysql.pro
  3. mingw32-make

註意:在上面的命令中qmake之後如果加上“-o Makefile”選項,那麽這個插件只能在以release模式編譯程序時才能使用,所以我們上面沒有加這個選項。

然後:我們按照上面的過程進行相應操作。

1.我們先下載MySQL的安裝文件。

我們可以到MySQL的官方主頁 http://www.mysql.com 進行下載最新的MySQL的windows版本,現在具體的下載頁面地址為:

http://www.mysql.com/downloads/mirror.php?id=383405#mirrors

我們不進行註冊,直接點擊其下面的


  1. Nothanks,justtakemetothedownloads!

可以在其中選擇一個鏡像網點進行下載,我使用的是Asia下的最後一個,就是臺灣的鏡像網點下載的。

下載到的文件名為:mysql-essential-5.1.44-win32 ,其中的win32表明是32位的windows系統,這一點一定要註意。文件大小為40M左右。

當然你也可以到中文網站上進行下載:http://www.mysql.cn/,隨便下一個windows的版本就行。

2.安裝軟件。

我們選擇定制安裝Custom。

技術分享圖片

然後選中安裝Include文件和Lib文件。

技術分享圖片

我們將安裝路徑更改為:C:MySQL 。

技術分享圖片

最終的界面如下。

技術分享圖片

安裝完成後,我們不進行任何操作,所以將兩個選項都取消。

技術分享圖片

3.進行編譯。

我們在桌面上開始菜單中找到Qt Creator的菜單,然後打開Qt Command Prompt。

技術分享圖片

然後輸入第一條命令cd %QTDIR%srcpluginssqldriversmysql 後按回車,運行效果如下。

技術分享圖片

然後輸入第二條命令:


  1. qmake“INCLUDEPATH+=C:MySQLinclude”“LIBS+=C:MySQLliboptlibmysql.lib”mysql.pro

按回車後運行效果如下:

技術分享圖片

最後輸入:mingw32-make ,按下回車後經過幾秒的編譯,最終效果如下:

技術分享圖片

整個編譯過程中都沒有出現錯誤提示,可以肯定插件已經編譯完成了。

4.我們再次進入Qt Creator安裝目錄下存放數據庫驅動插件的文件夾。

我這裏是D:Qt2010.02.1qtpluginssqldrivers

其內容如下:

技術分享圖片

可以看到已經有了和MySQL相關的文件了。

最後:我們編寫程序測試插件。

1.我們將上一次的主函數更改如下。


  1. intmain(intargc,char*argv[])
  2. {
  3. QCoreApplicationa(argc,argv);
  4. QSqlDatabasedb=QSqlDatabase::addDatabase(“QMYSQL”);//添加數據庫驅動
  5. returna.exec();
  6. }

運行程序,效果如下。

技術分享圖片

這裏提示:QSqlDatabase: QMYSQL driver not loaded 。

2.這時我們需要將C:MySQLbin目錄下的libmySQL.dll文件復制到我們Qt Creator安裝目錄下的qtbin目錄中。

如下圖:

技術分享圖片

3.這時再運行程序,就沒有提示了。

技術分享圖片

4.我們再將主函數更改一下,測試這時可用的數據庫驅動。


  1. intmain(intargc,char*argv[])
  2. {
  3. QCoreApplicationa(argc,argv);
  4. qDebug()<<“Availabledrivers:”;
  5. QStringListdrivers=QSqlDatabase::drivers();
  6. foreach(QStringdriver,drivers)
  7. qDebug()<<“t”<<driver;
  8. returna.exec();
  9. }

運行效果如下:

技術分享圖片

可以看到,現在已經有了MySQL的數據庫驅動了。

轉自:https://blog.csdn.net/dsg333/article/details/9628807

Qt添加驅動——Qt數據庫之添加MySQL驅動插件