資料庫幾乎是每個較大的軟體所必須應用的,而在qt中也使用qtsql模組實現了對資料庫的完美支援。我們在qt creator的幫助中查詢qtsql module,其內容如下圖:
可以看到這個模組是一組類的集合,使用這個模組我們需要加入標頭檔案#include ,而在工程檔案中需要加入一行**:qt += sql
這裡每個類的作用在後面都有簡單的介紹,你也可以進入其中檢視其詳細內容。下面我們先簡單的說一下qsqldatabase類和qsqlquery類。
qsqldatabase類實現了資料庫連線的操作,現在qt支援的資料庫型別有如下幾種:
而現在我們使用的免費的qt只提供了sqlite和odbc資料庫的驅動(我們可以在qt 4.5安裝目錄下的qt/plugins/sqldrivers資料夾下檢視),而其他資料庫的驅動需要我們自己新增。sqlite是乙個小巧的嵌入式資料庫,關於它的介紹你可以自己在網上查詢。
qsqlquery類用來執行sql語句。(關於sql語句:在我的教程中只會出現很簡單的sql語句,你沒有相關知識也可以看懂,但是如果想進行深入學習,就需要自己學習相關知識了。)
下面我們就先利用這兩個類來實現最簡單的資料庫程式,其他的類我們會在以後的教程中逐個學習到。
1.新建qt控制台工程。
2.選擇上qtsql模組,這樣就會自動往工程檔案中新增qt += sql 這行**了。
3.修改main.cpp中的內容如下。
#include
#include"mainwindow.h"
#include
#include
#include
#include
intmain(int
argc,
char
*argv)
else
qsqlqueryquery(db);
//以下執行相關qsl語句
boolbuscess=query.exec("create
table
person
(idint
primary
key,
firstname
varchar(20),
lastname
varchar(20))");
//新建person表,id設定為主鍵,乙個firstname項,還有乙個lastname項
query.exec("insertinto
person
values(101,
'danny',
'young')");
query.exec("insertinto
person
values(102,
'christine',
'holand')");
query.exec("insertinto
person
values(103,
'lars',
'gordon')");
query.exec("insertinto
person
values(104,
'roberto',
'robitaille')");
query.exec("insertinto
person
values(105,
'maria',
'papadopoulos')");
//向表中插入5條記錄
if(!buscess)
else
query.exec("select*from
person");
while(query.next())
returna.exec();
}我們使用了sqlite資料庫,連線名為「:memory:」表示這是建立在記憶體中的資料庫,也就是說該資料庫只在程式執行期間有效。如果需要儲存該資料庫檔案,我們可以將它更改為實際的檔案路徑。
4.最終效果如下。
5.我們可以將主函式更改如下。
#include
#include"mainwindow.h"
#include
#include
#include
#include
int這樣執行程式就可以顯示現在所有能用的資料庫驅動了。main(int
argc,
char
*argv)
可以看到現在可用的資料庫驅動只有三個。
Qt 資料庫簡介
資料庫幾乎是每個較大的軟體所必須應用的,而在qt中也使用qtsql模組實現了對資料庫的完美支援。我們可以在qt creator的幫助中查詢qtsql module的幫助文件。這個模組是一組類的集合,使用這個模組我們需要加入標頭檔案 include並且在工程檔案中需要加入一行 qt sql qsqlq...
Qt資料庫教程(一)簡介
資料庫幾乎是每個較大的軟體所必須應用的,而在qt中也使用qtsql模組實現了對資料庫的完美支援。我們在qt 助手中查詢qtsql module,可以發現我們用來連線 使用資料的各種類!比如說qsqldatabase qsqlquery等等。這些類都是這個模組的集合,使用這個模組我們需要加入標頭檔案 ...
QT 資料庫程式設計一
qt如果要進行網路程式設計首先需要在.pro中新增如下 qt network logindlg.h ifndef logindlg h define logindlg h include include include include class logindlg public qdialog en...