QT鏈接數據庫


在介紹QT與數據的鏈接問題上,我在這里就不介紹關於QT環境與mysql、sqlite3環境的安裝步驟了,以下的所有的操作都是建立在你已經安裝了所有環境的基礎上的。好的,那我們就具體來看一看QT環境中怎么與數據進行鏈接

一、QT鏈接sqlite3:

  QT鏈接sqlite3比較簡單,比如你在你的計算機上已經創建了一個叫users的數據庫,這時你需要在QT創建一個項目,在進行數據庫的鏈接之前需要在工程文件(也就是你的.pro文件)中添加

QT   +=    sql

他表示在QT中增加對數據的支持,接下來在項目中增加如下代碼:

1     db = QSqlDatabase::addDatabase ("QSQLITE");
2     db.setDatabaseName ("users");
3     if(!db.open ()){
4         qDebug() << db.lastError ().text ();
5     }else{
6         qDebug() << "open database sucessful";
7     }
View Code

當然這邊的db是聲明在頭文件的一個QSqlDatabase的一個類型,這樣如果你按上邊的寫法去做的話,你會發現,你打開數據是100%成功,因為,在打開數據的時候,如果沒有他會在你的項目的構建文件中默認創建一個為空的users的數據庫文件,如下圖:

所以你必須要將操作的數據庫文件放到該目錄下就可以了。。。

二、QT鏈接mysql數據庫

  因為mysql數據庫的操作是無法將數據庫文件放到構建目錄下的,所以他和sqlite3鏈接QT有些許的不同,QT鏈接mysql的的代碼為:

 1     db = QSqlDatabase::addDatabase ("QMYSQL");  //mysql的數據庫驅動
 2     db.setUserName ("root");                    //設置操作數據庫用戶名
 3     db.setPassword ("12345");                   //用戶密碼
 4     db.setHostName ("127.0.0.1");               //設置主機名,我們這邊測試使用本機地址
 5     db.setDatabaseName ("wyf");                 //設置操作的數據庫名字
 6     db.setPort (33333);                         //設置端口號(一般默認為3306,我進行了手動的更改)
 7     if(!db.open()){
 8         qDebug() << db.lastError ().text ();
 9     }else{
10         qDebug() << "open database sucessful";
11     }
View Code

  你會發現鏈接不上mysql數據庫,會有如下的提示:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
"Driver not loaded Driver not loaded"

  這時你需要把mysql的安裝路徑,找到mysql的驅動程序libmysql.dll

將他拷貝到你的項目中的可執行文件的目錄下:

接下來,再次運行程序,發現已經可以鏈接上了。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM