sqlite操作總結(一)

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個參數表示字段名。

發佈了46 篇原創文章 · 獲贊 22 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章