sqlite是一款輕量級的數據庫,提供了C/C++的API,在嵌入式領域應用廣泛。我是在Linux下利用sqlite的源碼編譯成動態庫,在我的代碼裏直接調用sqlite的接口,非常易於使用。
簡單列舉幾個常用的接口,網上的資料都有,而且也很容易使用
int sqlite3_open(const char *filename, sqlite3 **ppDb );
創建數據庫接口,如果filename表示的數據庫存在,則打開該數據庫;返回值爲SQLITE_OK表示操作成功,否則應該查看返回值檢查錯誤原因。通過ppDb返回操作數據庫的指針。
int sqlite3_close(sqlite3 *ppDb);
關閉數據庫,返回SQLITE_OK表示操作成功
int sqlite3_exec(
sqlite3* ppDb,
const char *sql,
int (*callback)(void*,int,char**,char**),
void *,
char **errmsg
);
第2個sql表示要執行的sql語句,sql的寫法和其他數據庫基本相同;
第3個參數表示sqlite3_exec執行成功後調用的回調函數,用以返回得到的數據,該回調函數需要用戶實現,當不需要回調時,我們一般填上NULL,如insert和delete操作都不需要回調通知上層,通常是執行select語句才需要通過回調返回數據;
第4個參數是要傳入回調函數的參數,如果不需要這個參數則直接填上NULL;
第5個參數是用以得到錯誤信息,如果sqlite3_exec執行失敗,除了會返回一個錯誤碼外,還可以通過errmasg直接打印出錯誤信息。
下面說明一下sqlite3_exec的回調函數:
int (*callback)(void*,int,char**,char**),
第1個參數void*是我們要傳入的參數,根據具體的場景決定是否傳入這個參數;
第2個參數int表示返回的字段個數,就是該條記錄的列數;(從這裏可以看出,每檢索到一條記錄都會調用一次回調函數)
第3個參數表示每個字段的值;
第4個參數表示字段名。