欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ù)庫,那么本地不需要安裝 MySQL,只需要找到 MySQL 提供的 libmysql.dll 和libmysqld.dll 兩個(gè)動(dòng)態(tài)連接庫,把他們加入到 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ù)庫連接賬號(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ù)庫,那么本地不需要安裝 MySQL,而只需要用到 MySQL 提供的動(dòng)態(tài)連接庫 libmysql.dll 和 libmysqld.dll。那么如果不安裝MySQL,怎么獲取那兩個(gè)動(dòng)態(tài)鏈接庫文件?可以這樣做:
•從已安裝了 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ùn)算的實(shí)現(xiàn)

    C++中取余運(yùn)算的實(shí)現(xiàn)

    這篇文章主要介紹了C++中取余運(yùn)算的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 利用C++實(shí)現(xiàn)最長公共子序列與最長公共子串

    利用C++實(shí)現(xiàn)最長公共子序列與最長公共子串

    這篇文章主要給大家介紹了如何利用C++實(shí)現(xiàn)最長公共子序列與最長公共子串,文章一開始就給大家簡(jiǎn)單的介紹了什么是子序列,子串應(yīng)該比較好理解就不用多介紹了,人后通過算法及示例代碼詳細(xì)介紹了C++實(shí)現(xiàn)的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • C語言中調(diào)用Swift函數(shù)實(shí)例詳解

    C語言中調(diào)用Swift函數(shù)實(shí)例詳解

    這篇文章主要介紹了C語言中調(diào)用Swift函數(shù)實(shí)例詳解的相關(guān)資料,實(shí)現(xiàn)該功能可以通過定義全局的指向Blocks的對(duì)象指針來實(shí)現(xiàn),需要的朋友可以參考下
    2017-07-07
  • 黑客帝國數(shù)字雨效果VC6源代碼分享

    黑客帝國數(shù)字雨效果VC6源代碼分享

    這篇文章主要介紹了黑客帝國數(shù)字雨效果VC6源代碼分享,本文直接給出實(shí)現(xiàn)代碼,Win7下編譯通過,效果很酷,需要的朋友可以參考下
    2015-02-02
  • C語言之sizeof與strlen的使用及區(qū)別

    C語言之sizeof與strlen的使用及區(qū)別

    這篇文章主要介紹了C語言之sizeof與strlen的使用及區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 詳解如何將Spire.XLS for C++集成到C++程序中

    詳解如何將Spire.XLS for C++集成到C++程序中

    Spire.XLS for C++ 是一個(gè) Excel 庫,供開發(fā)人員在任何類型的 C++ 應(yīng)用程序中操作 Excel 文檔(XLS、XLSX、XLSB 和 XLSM)。 本文演示了如何以兩種不同的方式將 Spire.XLS for C++ 集成到您的 C++ 應(yīng)用程序中
    2023-03-03
  • C++調(diào)試追蹤class成員變量的方法

    C++調(diào)試追蹤class成員變量的方法

    本文所講的是不通過修改一個(gè)class的成員,就能夠追蹤其成員。方法就是類似C語言中的函數(shù)指針
    2013-11-11
  • 深入理解:Java是類型安全的語言,而C++是非類型安全的語言

    深入理解:Java是類型安全的語言,而C++是非類型安全的語言

    本篇文章是對(duì)Java是類型安全的語言,而C++是非類型安全的語言進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C語言字符串函數(shù)介紹與模擬實(shí)現(xiàn)詳解

    C語言字符串函數(shù)介紹與模擬實(shí)現(xiàn)詳解

    字符串函數(shù)(String?processing?function)也叫字符串處理函數(shù),指的是編程語言中用來進(jìn)行字符串處理的函數(shù),如C,pascal,Visual以及LotusScript中進(jìn)行字符串拷貝,計(jì)算長度,字符查找等的函數(shù)
    2022-02-02
  • C 創(chuàng)建鏈表并將信息存儲(chǔ)在二進(jìn)制文件中讀取的實(shí)例代碼

    C 創(chuàng)建鏈表并將信息存儲(chǔ)在二進(jìn)制文件中讀取的實(shí)例代碼

    C 創(chuàng)建鏈表并將信息存儲(chǔ)在二進(jìn)制文件中讀取的實(shí)例代碼,需要的朋友可以參考一下
    2013-03-03

最新評(píng)論