国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQLite > 正文

SQLite函數使用教程(一)

2024-09-07 00:09:54
字體:
來源:轉載
供稿:網友

SQLite官方的使用介紹中附帶了一個C語言的實例,該實例使用了回調的方法處理由SQL語句返回的記錄集,這種回調函數的方法比較復雜,而且也并沒有獲得什么實質性的好處。所以在這里我推薦使用另外一組函數來完成該類操作,經實踐檢驗證明,該方法在效率方面不存在任何問題。具體代碼如下:

sqlite3 *db;
char *zErrMsg = 0;
int nrow = 0, ncolumn = 0; //查詢語句返回的結果集的行數,列數
char temp[256], FileRoot[256];
char ** azResult; //用于保存查詢結果集數據
sprintf(temp, _T("%s"), _T("//test.db"));
/*
SQLite3以UTF-8的編碼方式處理字符串,所以在使用sqlite3_open打開數據庫之前需要將數據庫路徑進行編碼轉換。
*/
CCodingConv::GB2312_2_UTF8(FileRoot, 256, temp, 0);
sqlite3_open(FileRoot, &db);
if(db == NULL)
{
return -1;
}
// sqlite3_get_table函數可以返回SQL語句執行之后的記錄集,以及行列數
sqlite3_get_table(db, "SELECT name, age FROM list;", &azResult, &nrow, &ncolumn, &zErrMsg);
//nrow表明一共有多少項符合該次查詢條件的記錄
for(int k = 1; k <= nrow; k )
{
printf(azResult[k*ncolumn]); //對應name列的數據
printf(azResult[k*ncolumn 1]); //對應age列的數據
}
//釋放為記錄集分配的內存,如果返回了空記錄集并不會發生錯誤
sqlite3_free_table(azResult);
//關閉數據庫
sqlite3_close(db);
return 0;

注釋:原代碼中的CCodingConv類可以進行UTF-8到GB2312之間的轉換。
CREATE TABLE list (name varchar(40) UNIQUE, age integer);

存入數據:
sqlite3_exec(db, "insert into list values ('tamsyn','24');", 0, 0, &zErrMsg);
sqlite3_exec(db, "insert into list values ('mistletoe','23');", 0, 0, &zErrMsg);
使用這種方法在C語言中可以更方便的使用SQLite3,避免了回調函數的復雜性。并且可以完成任何SQL語言的查詢操作。接下來我們的文章會結合實際操作,總結一下如何更高效的使用SQLite數據庫!一點愚見還望大家不吝賜教!

/upimg/soft/1_071221130918.rar

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 施秉县| 梅州市| 喀什市| 淮滨县| 曲水县| 长顺县| 梨树县| 格尔木市| 胶南市| 凯里市| 禄丰县| 新和县| 嘉禾县| 鄂伦春自治旗| 巴塘县| 牡丹江市| 清河县| 康平县| 封丘县| 青铜峡市| 盐亭县| 呼和浩特市| 手游| 扬中市| 资源县| 龙里县| 铁岭市| 彭泽县| 开平市| 双峰县| 福安市| 陈巴尔虎旗| 保山市| 蒙自县| 昌黎县| 石首市| 武宣县| 呈贡县| 武鸣县| 库车县| 晋州市|