1.鏈結mysql
首先正確安裝mysql資料庫。
然後將libmysql.lib檔案放在qt安裝路徑下的對應編譯器的lib資料夾下,如f:\software\qt5.9.5\5.9.5\mingw53_32\lib。將libmysql.dll檔案放在qt安裝路徑對應編譯器的bin資料夾下。
最後可正常鏈結使用資料庫。
ui-
>
setupui
(this);
qsqlquery query;
mutex.
lock()
;//互斥鎖,可以不用
qsqldatabase db = qsqldatabase::
adddatabase
("qmysql","aaa");
//qmysql不要變,aaa為連線名,可隨意命名,當乙個程式有多個地方需要鏈結資料庫時最好使用連線名。
//如使用則下面的query = qsqlquery("",db)
//不使用則:qsqldatabase db = qsqldatabase::adddatabase("qmysql");query = qsqlquery(db)
db.sethostname
("localhost");
//主機名
db.setport
(3306);
//埠號,一般為3306,若安裝資料庫時更改則需要做相應的更改
db.setusername
("root");
//使用者名稱
db.setpassword
("pusong");
//密碼
db.setdatabasename
("ps");
//資料庫名,在鏈結前需要保證資料庫中已經建立了該資料庫,建立語句:create database ps;
bool flag = db.
open()
;//判斷是否成功鏈結標誌
if(flag ==
true
)else}}
mutex.
unlock()
;//互斥鎖,前面未用則刪除
query =
qsqlquery
(db)
;
2.qsqlquery2.1 query.exec("…")執行sql語句query.exec("…"),主要應用於查詢、建立、刪除
qstring compren =
qstring
("select * from ak;");
//全表查詢
bool fflag = query.
exec
(compren)
;
query.
exec
("create table motorzuyuan(id int primary key,well int,valve int)"
);
query.
exec
("drop table motorzuyuan"
);
2.2 query.next()sqlquery提供了乙個訪問一條查詢結果記錄的方法。在呼叫了exec()方法之後,qsqlquery的內部指標定位到了第一條記錄之前的位置。我們必須呼叫一次qsqlquery::next()內部指標就移動到第一條記錄上(第一行),然後重複呼叫next()方法就可以移動到其他記錄上,直到該函式返回false為止。所以一般需要建立while迴圈。
2.3 query.value(…)
sqlquery::value()函式返回當前記錄的行乙個字段值。欄位的索引號從0開始計數。qsqlquery::value()返回乙個qvariant,這個型別可以儲存各種c++和核心的qt資料型別,比如int, qstring和qbytearray等。不同的資料庫型別將自動地對映到最近的qt等價型別。可以使用toint,tostring,todouble等轉換為自己需要的結果。
while
(query.
next()
)
2.4 query.prepare("…")一般用於插入,刪除,更新。此函式語句可利用變數運算元據庫
bindvalue()名稱繫結
addbindvalue()順序/位置繫結
qstring insert=
"insert into motorzuyuan"
"(id,well,valve) "
"values(:id,:well,:valve);"
;bool insertfalg =query.
prepare
(insert)
;//插入操作
if(insertfalg ==
false
)else
query.
bindvalue
(":id"
,k);
query.
bindvalue
(":well",-
1); query.
bindvalue
(":valve",-
1); query.
exec()
;
query.
prepare
("insert into employee (id, name, salary) "
"values (?, ?, ?)");
query.
addbindvalue
(1001);
query.
addbindvalue
("thad beaumont");
query.
addbindvalue
(65000);
query.
exec()
;
3. 可通過命令列執行框檢視運算元據庫當某資料庫中有表時可使用:desc 表名; 來檢視表中的資料
建立表:create table 表名
建立資料庫:create database 庫名
刪除:drop 表名/庫名
在Qt中使用SQLite資料庫
sqlite sql 是一款開源輕量級的資料庫軟體,不需要server,可以整合在其他軟體中,非常適合嵌入式系統。qt5以上版本可以直接使用sqlite qt自帶驅動 引入sql模組 在qt專案檔案 pro檔案 中,加入sql模組 qt sql include include include檢查連線...
C 中使用mysql資料庫方法
通過vc開發mysql資料庫應用軟體有多種方式 一 通過myodbc介面 二 通過connector c l介面 三 通過mysql c api介面 四 第三方封裝的mysql類 在經過反覆比較,我還是選擇了mysql c api方式來進行mysql的開發。在vc中使用mysql的步驟如下 2 安裝...
在python中使用mysql資料庫
先用pip安裝一下mysql pip install pymysql使用的時候,import python import pymysql python連線資料庫操作 開啟資料庫連線 def connectdb print 連線到mysql伺服器.db pymysql.connect localhos...