上篇文章介紹了如何使用Pyhton語(yǔ)言來(lái)操作SQLite數(shù)據(jù)庫(kù),對(duì)于嵌入式開(kāi)發(fā),更多的是使用C/C++語(yǔ)言進(jìn)行開(kāi)發(fā),因此,本篇介紹如何使用C語(yǔ)言來(lái)操作SQLite數(shù)據(jù)庫(kù)。
1 SQLite C語(yǔ)言API函數(shù)
SQLite的C語(yǔ)言API函數(shù)的官方文檔地址:https://sqlite.com/capi3ref.html#sqlite3_free

對(duì)于數(shù)據(jù)庫(kù)的基礎(chǔ)操控,可以先了解以下幾個(gè)最基本的API函數(shù):
1.1 打開(kāi)數(shù)據(jù)庫(kù) sqlite3_open
該函數(shù)用于打開(kāi)sqlite3數(shù)據(jù)庫(kù)的連接
int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
參數(shù)含義:
filename: 數(shù)據(jù)庫(kù)文件名
ppDb: 數(shù)據(jù)庫(kù)handle ,用結(jié)構(gòu)體sqlite3來(lái)表示一個(gè)打開(kāi)的數(shù)據(jù)庫(kù)對(duì)象
1.2 執(zhí)行sql語(yǔ)句 sqlite3_exec
int sqlite3_exec(
sqlite3*, /* An open database */
const char *sql, /* SQL to be evaluated */
int (*callback)(void*,int,char**,char**), /* Callback function */
void *, /* 1st argument to callback */
char **errmsg /* Error msg written here */
);
參數(shù)含義:
sqlite3 *: 數(shù)據(jù)庫(kù)句柄
sql: 要執(zhí)行的sql語(yǔ)句
callback: 回調(diào)函數(shù)
void *: 回調(diào)函數(shù)的第一個(gè)參數(shù)
errmsg: 錯(cuò)誤信息,如果沒(méi)有問(wèn)題則為NULL
1.3 回調(diào)函數(shù)
回調(diào)函數(shù)式一個(gè)比較復(fù)雜的函數(shù),一般用于sql語(yǔ)句執(zhí)行后的數(shù)據(jù)打印,其原型為:
int callback(
void *params,
int column_size,
char **column_value,
char **column_name
);
參數(shù)含義:
params: sqlite3_exec傳入的第四個(gè)參數(shù)
column_size: 結(jié)果字段的個(gè)數(shù)
column_value: 返回記錄的一位字符數(shù)組指針
column_name: 結(jié)果字段的名稱(chēng)
回調(diào)函數(shù)的通常寫(xiě)法為:
static int callback(void *data, int argc, char **argv, char **azColName)
{
int i;
fprintf(stderr, "%s:n", (const char*)data);
for(i=0; i;>
運(yùn)行結(jié)果:

4 總結(jié)
4 總結(jié)
本篇簡(jiǎn)單介紹了如何使用SQLite的C語(yǔ)言API中最基礎(chǔ)的幾個(gè)函數(shù),實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的讀寫(xiě),后續(xù)再介紹其它常用的C語(yǔ)言API函數(shù)的用法。
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7632瀏覽量
141739 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3926瀏覽量
66218 -
SQlite
+關(guān)注
關(guān)注
0文章
81瀏覽量
16403
發(fā)布評(píng)論請(qǐng)先 登錄
玩轉(zhuǎn)SQLite5:使用Python來(lái)讀寫(xiě)數(shù)據(jù)庫(kù)

評(píng)論