QT连接PostSql (小白教程)
1,再連接數據庫前,我們需要提前創建好我們需要連接的數據庫
例如? 我創建的數據集名稱為:roadmap數據集? ? 然后里面有兩個表? ?分別是roadinfo_tab? ?與roadmag_tab? ?然后我們需要記住我們創建的UserID;? Password;? Server;? Port 這些數據對于我們使用qt連接數據庫有用
2,首先我們需要首先打開自己的qt軟件? 查看我們是否有連接postsql數據庫的驅動
主要參考這個博主的(14條消息) Qt連接MySQL數據庫最詳細的教程_joey小天使的博客-CSDN博客_qtmysql?
對于我們這個? ?只需要看如下信息:
主要是這個代碼:
? ? qDebug()<<"available drivers:";
? ? QStringList drivers = QSqlDatabase::drivers();
? ? foreach(QString driver, drivers)
? ? ? ? qDebug()<<driver;
首先先執行如下步驟:也即是在pro里面添加QT += sql
然后把上面的代碼放在如下圖的文件里面,然后運行? ?
需要添加的頭文件如下:
#include<QSqlDatabase> #include<QDebug> #include<QSqlQuery>?運行后? 查看結果里面是否含有"QPSQL"? ?也即是如下圖;
?倒數第二個? ? 如有? 才能繼續進行? ?如沒有??
?則可以參考這個博主的方法? ?不過這個博主主要是進行連接? ?mysql的? 大家可以參考一下。
(14條消息) Qt連接MySQL數據庫最詳細的教程_joey小天使的博客-CSDN博客_qtmysql
3,在查看自己有postsql的驅動器后? ?我們需要激活下
可以查看這個博主的方法??
(14條消息) QT 連接 PostgreSQL 10 驅動問題解決_藍殼的博客-CSDN博客
操作 如下圖:
1,這個步驟上面已經做過? ?無需在做
在第二個步驟時,你需要先構建你的qt項目得到一個debug文件? ?
?2,按照步驟找到教程里說的,把那些文件放在這個debug里面,結果如下:
4,在前3步完成后? ?第四步就簡單了
首先找到 在postsql的安裝目錄下找到include文件夾,以及lib文件夾,并把下面的兩行代碼放在qt的項目文件夾下,路徑記得改成自己的文件路徑?: INCLUDEPATH += "E:/PostgreSQL/10/include" LIBS +="E:/PostgreSQL/10/lib/libpq.lib"結果如圖所示:?
?下面進行連接數據庫,首先第一步先驗證直接是否已經可以連接數據庫了
代碼如下:
由于我的是“UserID=postgres;Password=postgres;Server=127.0.0.1;Port=5432;Database=roadmap”這樣的所以對應的連接數據庫的代碼如下:
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL"); db.setHostName("127.0.0.1"); # 需要改成自己的對應的端口號 db.setDatabaseName("roadmap");#這個是自己創建的數據集 需要改成自己的創建的數據集 db.setPort(5432);#需要改成自己的 db.setUserName("postgres");#用戶名 也需要改成自己的 db.setPassword("postgres");#用戶密碼 需要改成自己對應的 bool ok = db.open(); if (ok){ QMessageBox::information(this, "infor", "success"); } else { QMessageBox::information(this, "infor", "open failed"); }直接把這個代碼放在如下位置,按照下圖放置就ok
記得把頭文件放好,頭文件如下:
#include<QSqlDatabase> #include<QDebug> #include<QMessageBox>? ?#include<QSqlQuery>
#include <libpq-fe.h>#這步如果報錯的話 需要查看你的第三步是否完成 如果已經完成仍然報錯 先執行一下如下操作 應該就好了這幾個頭文件放在這下圖對應的位置
?然后運行,應該會出現如下結果:
如出現這個結果也即是連接數據庫成功!!!
下面是如何取出自己創建的數據集里面的數據:
代碼如下:
QSqlQuery query(db); query.exec("SET NAMES 'Latin1'");//使數據庫支持中文(此處很重要) QString sql=QString("select *from roadinfo_tab"); #這個地方需要改成自己數據集里面的表的名字 bool okopen= query.exec(sql); if(okopen) { QMessageBox::about(NULL, "Save1", "save new database success1"); } else { QMessageBox::about(NULL, "Save1", "error save new database1"); } query.exec(sql); while(query.next()) { int id = query.value(0).toInt(); #0就是指取出你表里面的第一列數據 qDebug()<<QString("id:%1").arg(id); #這個是輸出你取出的數據 }如果你直接復制的話? ?需要將代碼對齊? ? 不然會報錯
也即是放在這個位置:
然后運行就可以得出如下結果:
?我的數據集roadmap里面的roadinfo_tab表里面的數據如下:
可以對比以上兩個數據:可以看出qt運行得出的數據和你創建的數據集里面的數據一樣。也即是實現了qt成功連接了postsql,并且也可以取出postsql里面的數據。。。。
總結
以上是生活随笔為你收集整理的QT连接PostSql (小白教程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看安卓APK源码破解
- 下一篇: 前端小知识点(1):undefined和