|
點擊左上方藍色“一口Linux”,選擇“設(shè)為星標(biāo)”
第一時間看干貨文章
?【干貨】嵌入式驅(qū)動工程師學(xué)習(xí)路線?【干貨】Linux嵌入式知識點-思維導(dǎo)圖-免費獲取?【就業(yè)】一個可以寫到簡歷的基于Linux物聯(lián)網(wǎng)綜合項目?【就業(yè)】找工作簡歷模版
k5zwakk5i0w64039493354.gif (555.24 KB, 下載次數(shù): 8)
下載附件
保存到相冊
k5zwakk5i0w64039493354.gif
2024-10-3 06:49 上傳
n4amnto2tdc64039493454.jpg (35.28 KB, 下載次數(shù): 8)
下載附件
保存到相冊
n4amnto2tdc64039493454.jpg
2024-10-3 06:49 上傳
《嵌入式數(shù)據(jù)庫sqlite3【基礎(chǔ)篇】-基本命令操作,小白一看就懂》
《嵌入式數(shù)據(jù)庫sqlite3【進階篇】-子句和函數(shù)的使用,小白一文入門》
sqlite3編程接口非常多,對于初學(xué)者來說,我們暫時只需要掌握常用的幾個函數(shù),其他函數(shù)自然就知道如何使用了。
數(shù)據(jù)庫本篇假設(shè)數(shù)據(jù)庫為my.db,有數(shù)據(jù)表student。
nonamescore4一口Linux89.0創(chuàng)建表格語句如下:
CREATE TABLE IF NOT EXISTS student (no integer primary key, name text, score real);
常用函數(shù)sqlite3_openint sqlite3_open(char *path, sqlite3 **db);
功能:
打開sqlite數(shù)據(jù)庫
參數(shù):
path: 數(shù)據(jù)庫文件路徑
db: 指向sqlite句柄的指針,后面對數(shù)據(jù)庫所有的操作都要依賴這個句柄
返回值:
成功返回0,失敗返回錯誤碼(非零值)
sqlite3_closeint sqlite3_close(sqlite3 *db);
功能:
關(guān)閉sqlite數(shù)據(jù)庫
返回值:
成功返回0,失敗返回錯誤碼
const char *sqlite3_errmsg(sqlite3 *db);
功能:
打印錯誤信息
返回值:
返回錯誤信息
不使用回調(diào)函數(shù)執(zhí)行SQL語句sqlite3_get_table
int sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int*nrow, int *ncolumn, char **errmsg);
功能:
執(zhí)行SQL操作
參數(shù):
db:數(shù)據(jù)庫句柄
sql:SQL語句
resultp:用來指向sql執(zhí)行結(jié)果的指針
nrow:滿足條件的記錄的數(shù)目
ncolumn:每條記錄包含的字段數(shù)目
errmsg:錯誤信息指針的地址
返回值:
成功返回0,失敗返回錯誤碼
舉例下面比如我們要顯示student表中所有的數(shù)據(jù)信息,我們就可以利用sqlite3_get_table()執(zhí)行語句:
select * from student
實現(xiàn)代碼如下:
void do_show_sample(sqlite3 *db)
{
char **result, *errmsg;
int nrow, ncolumn, i, j, index;
if (sqlite3_get_table(db, "select * from student", &result, &nrow, &ncolumn, &errmsg) != 0)
{
printf("error : %s
", errmsg);
sqlite3_free(errmsg);
}
index = ncolumn;
for (i=0; ifor (j=0; jprintf("%-8s : %-8s
", result[j], result[index]);
index++;
}
printf("************************
");
}
sqlite3_free_table(result);
return;
}
假定當(dāng)前的表格的數(shù)據(jù)信息如下:
nonamescore4一口Linux77.05一口peng88.06一口wang99.07一口網(wǎng)66.0關(guān)于這個函數(shù)中出現(xiàn)的這些參數(shù)的具體含義,我們可以見下圖:
sqlite3編程接口非常多,對于初學(xué)者來說,我們暫時只需要掌握常用的幾個函數(shù),其他函數(shù)自然就知道如何使用了。
數(shù)據(jù)庫本篇假設(shè)數(shù)據(jù)庫為my.db,有數(shù)據(jù)表student。
nonamescore4一口Linux89.0創(chuàng)建表格語句如下:
CREATE TABLE IF NOT EXISTS student (no integer primary key, name text, score real);
常用函數(shù)sqlite3_openint sqlite3_open(char *path, sqlite3 **db);
功能:
打開sqlite數(shù)據(jù)庫
參數(shù):
path: 數(shù)據(jù)庫文件路徑
db: 指向sqlite句柄的指針
返回值:
成功返回0,失敗返回錯誤碼(非零值)
sqlite3_closeint sqlite3_close(sqlite3 *db);
功能:
關(guān)閉sqlite數(shù)據(jù)庫
返回值:
成功返回0,失敗返回錯誤碼
const char *sqlite3_errmsg(sqlite3 *db);
功能:
打印錯誤信息
返回值:
返回錯誤信息
不使用回調(diào)函數(shù)執(zhí)行SQL語句sqlite3_get_table
int sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int*nrow, int *ncolumn, char **errmsg);
功能:
執(zhí)行SQL操作
參數(shù):
db:數(shù)據(jù)庫句柄
sql:SQL語句
resultp:用來指向sql執(zhí)行結(jié)果的指針
nrow:滿足條件的記錄的數(shù)目
ncolumn:每條記錄包含的字段數(shù)目
errmsg:錯誤信息指針的地址
返回值:
成功返回0,失敗返回錯誤碼
舉例下面比如我們要顯示student表中所有的數(shù)據(jù)信息,我們就可以利用sqlite3_get_table()執(zhí)行語句:
select * from student
實現(xiàn)代碼如下:
void do_show_sample(sqlite3 *db)
{
char **result, *errmsg;
int nrow, ncolumn, i, j, index;
if (sqlite3_get_table(db, "select * from student", &result, &nrow, &ncolumn, &errmsg) != 0)
{
printf("error : %s
", errmsg);
sqlite3_free(errmsg);
}
index = ncolumn;
for (i=0; ifor (j=0; jprintf("%-8s : %-8s
", result[j], result[index]);
index++;
}
printf("************************
");
}
sqlite3_free_table(result);
return;
}
假定當(dāng)前的表格的數(shù)據(jù)信息如下:
nonamescore4一口Linux77.05一口peng88.06一口wang99.07一口網(wǎng)66.0關(guān)于這個函數(shù)中出現(xiàn)的這些參數(shù)的具體含義,我們可以見下圖: |
|