最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Windows 環(huán)境下使用 Qt 連接 MySQL

 更新時(shí)間:2017年07月16日 17:20:26   作者:日常__  
這篇文章主要介紹了Windows 環(huán)境下使用 Qt 連接 MySQL的相關(guān)資料,需要的朋友可以參考下

如果應(yīng)用只需要連接遠(yuǎn)程數(shù)據(jù)庫(kù),那么本地不需要安裝 MySQL,只需要找到 MySQL 提供的 libmysql.dll 和libmysqld.dll 兩個(gè)動(dòng)態(tài)連接庫(kù),把他們加入到 Qt安裝目錄\5.9\mingw53_32\bin\;默認(rèn) Qt 自帶已編譯好的 qsqlmysql.dll 和 qsqlmysqld.dll (文件路徑為 Qt安裝目錄\5.9\mingw53_32\plugins\sqldrivers\ );兩者如果配套就能成功地讓 Qt 連接上 MySQL。

(我安裝的Qt 版本是 Qt 5.9.0 mingw53_32,文章中提到的一些路徑是我本機(jī)上的路徑,需要進(jìn)行適當(dāng)修改)

一、測(cè)試 Qt 與 MySQL 是否能正常連接

假設(shè) Qt安裝目錄\5.9\mingw53_32\bin\  下已加入了 libmysql.dll 和 libmysqld.dll,進(jìn)行以下測(cè)試。

•新建 Qt Widgets Application,修改 main.cpp 的代碼為:

 #include "mainwindow.h"
 #include <QApplication>
 #include <QtSql>
 #include <QDebug>

 int main(int argc, char *argv[])
 {
   QApplication a(argc, argv);
   MainWindow w;
   w.show();

   //建立連接
   QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
   db.setHostName("localhost");
   db.setPort(3306);
   db.setDatabaseName("mysql");
   db.setUserName("root");
   db.setPassword("yourPassword");   //設(shè)置數(shù)據(jù)庫(kù)連接賬號(hào)的密碼
   bool ok = db.open();
   if(ok) qDebug()<<"OK";
   else qDebug()<<"False";

   return a.exec();
 }

•構(gòu)建并運(yùn)行項(xiàng)目,查看應(yīng)用程序輸出
如果輸出 OK,那到此為止了,Qt 與 MySQL 連接正常;如果輸出 False,不出意外是因?yàn)?libmysql.dll、libmysqld.dll 與 qsqlmysql.dll、qsqlmysqld.dll版本不匹配!需要對(duì) qsqlmysql.dll、qsqlmysqld.dll 進(jìn)行修改。

二、添加 MySQL 的libmysql.dll、libmysqld.dll

(注意:Qt msvc2015_64 可以使用32
位、64 位版本的 MySQL 文件,Qt mingw53_32 只能使用 32 位版本的MySQL 文件)
之前提到,如果應(yīng)用只需要連接遠(yuǎn)程數(shù)據(jù)庫(kù),那么本地不需要安裝 MySQL,而只需要用到 MySQL 提供的動(dòng)態(tài)連接庫(kù) libmysql.dll 和 libmysqld.dll。那么如果不安裝MySQL,怎么獲取那兩個(gè)動(dòng)態(tài)鏈接庫(kù)文件?可以這樣做:
•從已安裝了 MySQL 的機(jī)器上拷貝這兩個(gè)文件。
•本地臨時(shí)安裝 MySQL,然后保留下需要的文件,卸載 MySQL。

安裝 MySQL 可以去官網(wǎng)下載安裝包,不過我不太喜歡這樣做,因?yàn)楝F(xiàn)在 MySQL 的安裝組件太多太雜,很多東西都是不必要。推薦去一些開源鏡像站上下載對(duì)應(yīng)版本,比如說 Tuna、USTC。臨時(shí)安裝 MySQL 之后先不急著卸載,后面編譯 MySQL 驅(qū)動(dòng)會(huì)用到。

三、重新編譯 qsqlmysql.dll、qsqlmysqld.dll

編譯 Qt 關(guān)于 MySQL 的驅(qū)動(dòng)需要用到 Qt 的源碼,獲取 Qt 的源碼可以使用 MaintenanceTool.exe 下載 Src,編譯驅(qū)動(dòng)用到的工程文件路徑為 Qt安裝目錄\5.9\Src\qtbase\src\plugins\sqldrivers\mysql\ 。源碼差不多有2G的大小,而編譯驅(qū)動(dòng)需要用到的工程文件大約幾十M,要是存儲(chǔ)空間和網(wǎng)速不給力,建議只下載
qtbase-opensource-src-5.9.0.zip,需要的工程在 qtbase-opensource-src-5.9.0\src\plugins\sqldrivers\mysql\ 。

用 Qt 打開上面提到的編譯驅(qū)動(dòng)用到的工程文件,在 mysql.pro 末尾加上這兩句:
INCLUDEPATH += mysql安裝目錄\include
LIBS += -Lmysql安裝目錄\lib\ -llibmysql

構(gòu)建并運(yùn)行項(xiàng)目會(huì)在 C 盤下生成 plugins\sqldrivers 目錄,里面包含 qsqlmysql.dll、qsqlmysqld.dll 兩個(gè)文件,將它們復(fù)制一份覆蓋原先的兩個(gè)文件即可。再次進(jìn)行 Qt 與 MySQL 的連接測(cè)試,成功了沒有?

相關(guān)文章

  • C?語(yǔ)言實(shí)現(xiàn)猜數(shù)字小游戲完整示例代碼

    C?語(yǔ)言實(shí)現(xiàn)猜數(shù)字小游戲完整示例代碼

    這篇文章主要介紹了如何使用C語(yǔ)言生成1到100之間的隨機(jī)數(shù),并提供了一個(gè)簡(jiǎn)單的猜數(shù)字游戲的實(shí)現(xiàn)代碼,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • C/C++實(shí)現(xiàn)監(jiān)控目錄文件變化

    C/C++實(shí)現(xiàn)監(jiān)控目錄文件變化

    ReadDirectoryChangesW是Windows操作系統(tǒng)提供的一個(gè)函數(shù),用于監(jiān)視目錄的變化,本文主要為大家介紹了如何使用ReadDirectoryChangesW實(shí)現(xiàn)監(jiān)控目錄文件變化,需要的可以參考下
    2023-11-11
  • VScode搭建C/C++開發(fā)環(huán)境的詳細(xì)過程

    VScode搭建C/C++開發(fā)環(huán)境的詳細(xì)過程

    最近迷上了vscode,小巧美觀,最主要的是全平臺(tái),但是vscode并不是ide,必須得自己配置環(huán)境,下面這篇文章主要給大家介紹了關(guān)于VScode搭建C/C++開發(fā)環(huán)境的詳細(xì)過程,需要的朋友可以參考下
    2023-06-06
  • C/C++中如何判斷某一文件或目錄是否存在

    C/C++中如何判斷某一文件或目錄是否存在

    以下文章是對(duì)C/C++中判斷某一文件或目錄是否存在的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下
    2013-07-07
  • C++類與對(duì)象之運(yùn)算符重載詳解

    C++類與對(duì)象之運(yùn)算符重載詳解

    運(yùn)算符重載的方法是定義一個(gè)重載運(yùn)算符的函數(shù),在需要執(zhí)行被重載的運(yùn)算符時(shí),系統(tǒng)就自動(dòng)調(diào)用該函數(shù),以實(shí)現(xiàn)相應(yīng)的運(yùn)算。也就是說,運(yùn)算符重載是通過定義函數(shù)實(shí)現(xiàn)的
    2021-10-10
  • C++ Boost PropertyTree解析INI文件詳解

    C++ Boost PropertyTree解析INI文件詳解

    Boost PropertyTree庫(kù)不僅可以解析JSON,XML格式,還可以直接解析INI格式文件。這篇文章就是為大家介紹一下如何通過Boost PropertyTree解析INI文件,需要的可以參考一下
    2022-01-01
  • C/C++讀取大文件數(shù)據(jù)方式詳細(xì)講解

    C/C++讀取大文件數(shù)據(jù)方式詳細(xì)講解

    這篇文章主要介紹了C語(yǔ)言/C++讀取大文件數(shù)據(jù)的完整方式過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • C++實(shí)現(xiàn)數(shù)獨(dú)快速求解

    C++實(shí)現(xiàn)數(shù)獨(dú)快速求解

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)數(shù)獨(dú)快速求解的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Qt中集成并使用SQLite數(shù)據(jù)庫(kù)的超完整指南

    Qt中集成并使用SQLite數(shù)據(jù)庫(kù)的超完整指南

    這篇文章主要介紹了Qt中集成并使用SQLite數(shù)據(jù)庫(kù)的相關(guān)資料,包括環(huán)境配置、連接數(shù)據(jù)庫(kù)、執(zhí)行SQL操作、事務(wù)處理、使用模型-視圖編程、錯(cuò)誤處理、高級(jí)技巧與注意事項(xiàng)以及常見問題解答,需要的朋友可以參考下
    2025-04-04
  • C++深入探究二階構(gòu)造模式的原理與使用

    C++深入探究二階構(gòu)造模式的原理與使用

    C++中經(jīng)常會(huì)因?yàn)檎{(diào)用系統(tǒng)資源失敗導(dǎo)致出現(xiàn)BUG,所以在類調(diào)用構(gòu)造函數(shù)需要分配系統(tǒng)資源時(shí)會(huì)出現(xiàn)BUG,從而導(dǎo)致類對(duì)象雖然被創(chuàng)建,但是只是個(gè)半成品,為了避免這種情況需要使用二階構(gòu)造模式
    2022-04-04

最新評(píng)論

九寨沟县| 文山县| 庄河市| 阳东县| 灯塔市| 巴彦县| 门头沟区| 泉州市| 寻乌县| 资兴市| 敦煌市| 彭州市| 瑞丽市| 伊川县| 恩施市| 神农架林区| 蓬安县| 喜德县| 盐城市| 二连浩特市| 房产| 施甸县| 获嘉县| 上蔡县| 新蔡县| 元氏县| 临朐县| 双柏县| 万州区| 馆陶县| 垫江县| 林西县| 邓州市| 镶黄旗| 鹰潭市| 江安县| 玉屏| 灌云县| 库车县| 崇阳县| 溧水县|