.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個 最後編譯就會生成 把這個...