資料庫 SQLite3常用函式

2022-07-27 09:00:13 字數 2139 閱讀 1743

開啟資料庫

函式原型: int sqlite3_open(const char* filename, sqlite3** ppdb);

函式功能:開啟乙個資料庫,若該資料庫檔案不存在,則自動建立。開啟或者建立資料庫的命令會被快取,直到這個資料庫真正被呼叫的時候才會被執行。

輸入引數:filename,待開啟的資料庫檔名稱,包括路徑,以』\0』結尾; 特別說明:sqlite 支援記憶體資料庫,記憶體方式儲存使用檔名「:memory:」

輸出引數:ppdb,返回開啟的資料庫控制代碼;

返回值:執行成功返回sqlite_ok,否則返回其他值;

執行資料庫語句(建立表、插入資料、更新資料、刪除資料)

函式原型:int sqlite3_exec(sqlite3* pdb, const char sql, sqlite_callback callback, voidpara, char** errmsg);

函式功能:編譯和執行零個或多個sql 語句,查詢的結果返回給**函式callback

輸入引數:ppdb,資料庫控制代碼;sql,待執行的sql 語句字串,以』\0』結尾;callback,**函式,用來處理查詢結果,如果不需要**(比如做insert 或者delete 操作時),可以 輸入null;

para,使用者傳入的引數,可以為null,該引數指標最終會被傳給**函式callback,供使用者在**函式中使用;  

輸出引數:errmsg,返回錯誤資訊,注意是指標的指標。

返回值:執行成功返回sqlite_ok,否則返回其他值

查詢資料庫

函式原型:int sqlite3_get_table(sqlite3* pdb, const char *sql,char *presult, int * rowcount,int * columncount, charerrmsg);

函式功能:執行sql 語句,通過一維陣列返回結果;

輸入引數:ppdb,開啟的資料庫控制代碼;sql,待執行的sql 字串,以』\0』結尾;

輸出引數:rowcount,查詢出多少條記錄(即查出多少行);columncount,查詢出來的記錄有多少個字段(多少列); errmsg,返回錯誤資訊;presult,查詢結果,是由字串組成的一維陣列(不要以為是二維陣列,更不要以為是三維陣列)。它的記憶體布局是:第一行是欄位名稱,後面緊接著每個欄位的值;

返回值:執行成功返回sqlite_ok,否則返回其他值

釋放查詢結果

函式原型:void sqlite3_free_table(char **result);

函式功能:釋放查詢結果占用的記憶體;

輸入引數:result,通過函式sqlite3_get_table()查詢到的記錄結果

輸出引數:無

返回值:無

**函式

函式原型:typedef int (sqlite_callback)(void para,int columncount,char** columnvalue,char** columnname);

函式功能:由使用者處理查詢的結果

輸入引數:para,從sqlite3_exec()傳入的引數指標;columncount, 查詢到的這一條記錄有多少個字段(即這條記錄有多少列);columnvalue,查詢出來的資料都儲存在這裡,它實際上是個1 維陣列(不要以為是2 維陣列),每乙個元素都是乙個char * 值,是乙個字段內容(用字串來表示,以『\0』結尾);columnname,與columnvalue 是對應的,表示這個欄位的欄位名稱。

輸出引數:無

返回值:執行成功返回sqlite_ok,否則返回其他值

除錯資料庫

函式原型:const char sqlite3_errmsg(sqlite3 pdb);

函式功能:獲取最近呼叫的api 介面返回的錯誤說明,這些錯誤資訊utf-8的編碼返回,並且在下一次呼叫任何sqlite api 函式時被自動清除;

輸入引數:pdb,開啟的資料庫控制代碼

輸出引數: 無

返回值:錯誤說明的字串指標

關閉資料庫

函式原型: int sqlite3_close(sqlite3* pdb);

函式功能:關閉乙個開啟的資料庫;

輸入引數:ppdb,開啟的資料庫控制代碼

輸出引數:無

返回值:執行成功返回sqlite_ok,否則返回其他值;

Sqlite3 資料庫使用

iphone本身是支援 sqlite3 資料庫的,在專案中匯入libsqlite3.dylib。並建立資料庫,在終端,建立資料庫的方式 mkdir sql 建立sql資料夾 cd sql 進入sql目錄下 sqlite3 student.sql 建立名為 student.sql的資料庫 建立表 插入...

sqlite3資料庫操作

1 開啟資料庫 1 需要制定資料庫的路徑 nsstring filepath nshomedirectory documents data.sqlite 2 建立資料庫的物件 sqlite3 qingyundb null 3 開啟命令 sqlite3 open dbfilepath utf8stri...

SQLite3資料庫操作

簡單的sqlite3語句,通過字串拼接執行資料庫操作。1.建立資料庫格式 db.execsql create table if not exists sharp id integer primary key,name varchar,level integer,high integer 其真正的有效...