日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

QT连接PostSql (小白教程)

發布時間:2023/12/9 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 (小白教程)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。