QT簡單使用SQLITE3

2021-10-01 13:02:03 字數 3037 閱讀 6579

.pro檔案

qt +

= sql

.**件

qsqldatabase *m_pdatabase;

qsqlquery *m_psqlquery;

.cpp檔案

>tr(

"./user/login.db");

//路徑一定要準確,這裡使用相對路徑(也就是在專案生成的debug目錄下)

qfileinfo file

(dbfilename)

;//用於判斷檔案是否存在if(

!file.

exists()

)//使用qsqlquery類運算元據庫

m_psqlquery =

newqsqlquery

(*m_pdatabase);if

(m_psqlquery ==

null

)createdatabasetale()

;//建立資料表(為了不重複建立)

}else

m_psqlquery =

newqsqlquery

(*m_pdatabase);if

(m_psqlquery ==

null

)}

int caccountmanage::

createdatabasetale()

return0;

}/**

primary key :主鍵

not null:不能為空

varchar(64):可變長字元型別

**/

//新增資料

int caccountmanage::

addaccount

(accountinfo &taccount)

return0;

}//刪除資料

int caccountmanage::

deleteaccount

(qstring &tname)

return brtn;

}//查詢資料

int caccountmanage::

checkusernameandpassword

(qstring &tname, qstring &tpassword, qstring &ntype)

while

(m_psqlquery-

>

next()

) m_psqlquery-

>

clear()

;//清空查詢的結果集

//查詢所有

//qstring selsqltext = qstring("select * from useraccount");

//if(!m_psqlquery->exec(selsqltext))

//while(m_psqlquery->next())

//m_psqlquery->clear(); //清空查詢的結果集

return nrtn;

}/****/

其中的sql語句 「select * from useraccount」 中 「*」 號表明查詢表中記錄的所有屬性。而當 m_psqlquery-

>

exec()

; 這條語句執行完後,我們便獲得了相應的執行結果,因為獲得的結果可能不止一條記錄,所以稱之為結果集。

結果集其實就是查詢到的所有記錄的集合,在 qsqlquery 類中提供了多個函式來操作這個集合,需要注意這個集合中的記錄是從0開始編號的。最常用的操作有:

• seek

(int n) : query 指向結果集的第n條記錄;

• first

() : query 指向結果集的第一條記錄;

• last

() : query 指向結果集的最後一條記錄;

• next

(• previous

(• record

() :獲得現在指向的記錄;

• value

(int n) :獲得屬性的值。其中 n 表示你查詢的第n個屬性,比方我們使用 「select * from useraccount 」,那麼 value(0

) 返回 useraccountname 屬性的值, value(1

) 返回 useraccountpassword屬性的值。該函式返回 qvariant 型別的資料,可通過如m_psqlquery-

>

value(0

).tostring

()語句得到所需型別值。

• at

() :獲得現在 query 指向的記錄在結果集中的編號。

需要特別注意,剛執行完 m_psqlquery-

>

exec()

; 這行**時, m_psqlquery是指向結果集以外的,我們可以利用 m_psqlquery.

next

() 使得 m_psqlquery指向結果集的第一條記錄。當然我們也可以利用 seek(0

) 函式或者 first

() 函式使 m_psqlquery指向結果集的第一條記錄。但是為了節省記憶體開銷,推薦的方法是, 這行**前加上 m_psqlquery-

>

setforwardonly

(true

); 這條**,此後只能使用 next

() 和 seek

() 函式。

/****/

//修改資料

qstring updsqltext =

qstring

("update useraccount set user_account_password = '%1' where user_account_name='%2'").

arg(tnewpassword)

.arg

(tname);if

(!m_psqlquery-

>

exec

(updsqltext)

)

ios簡單使用sqlite3

sqlite是嵌入式的和輕量級的sql資料庫。sqlite是由c實現的。廣泛用於包括瀏覽器 支援html5的大部分瀏覽器,ie除外 ios android以及一些便攜需求的小型web應用系統。使用sqlite前的準備 使用sqlite是很多做ios開發中第一次面對c的情況,包括我。因為sqlite是...

sqlite3使用簡單示例

1 建立資料庫testdb.db sqlite3 testdb.db 2 一旦資料庫被建立,您就可以使用 sqlite 的 databases 命令來檢查它是否在資料庫列表中,如下所示 sqlite databases 3 建立think test表 sqlite create table thin...

qt中使用sqlite3教程

qt中預設帶有sqlite的驅動庫,但是實際使用的時候嫌麻煩,所以花時間研究了一下ssqlite預設的,感覺挺精簡的,特此記錄一下 1.新建乙個qt的靜態庫工程sqlite3 static,然後把建立專案時生成的檔案全刪掉,叫sqlite原始碼中的檔案 主要是紅色圈住的3個 最後編譯就會生成 把這個...