sqlite3函數接口(重點★):
int sqlite3_open(const char*, sqlite3**);
函數用於打開/創建一個函數庫
const char* 指定文件名,sqlite3** 指定數據庫句柄,用戶通過數據庫句柄操作數據庫
返回一個整數錯誤代碼,=0 表示成功碼,> 0都是錯誤
int sqlite3_close(sqlite3*);
關閉數據庫文件,參數是數據庫句柄
int sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void*, char**);
函數用於執行一條或多條SQL語句,SQL語句之間用“;”隔開
sqlite3*指定已打開的數據庫句柄,const char *sql 指定SQL指令,sqlite_callback 在回調函數中可以獲得SQL執行的結果,void* 指定傳給回調函數的數據 , char** 指定命令執行失敗的詳細錯誤信息
返回0表示sql指令執行完畢,否則說明這次執行沒有成功
int sqlite3_get_table(
sqlite3 *db, /* An open database */
const char *zSql, /* SQL to be evaluated */
char ***pazResult, /* Results of the query */
int *pnRow, /* Number of result rows written here */
int *pnColumn, /* Number of result columns written here */
char **pzErrmsg /* Error msg written here */
);
sqlite3_get_table主要是用於非回調的方式進行select查詢
db 打開數據庫得到的指針, zSql 一條sql語句,跟sqlite3_exec中一樣, pazResult 查詢的數據結果,他是一個指針數組,內存分布為:字段名稱,后面是緊接着是每個字段的值, pnRow 查詢到的數據條數(行數), pnColumn 查詢到的字段數(列數), pzReemsg 錯誤信息;
返回0或其他
void sqlite3_free_table(char **result);
用於釋放保存查詢內容的指針數組
int sqlite_callback(
void* pv, /* 由 sqlite3_exec() 的第四個參數傳遞而來 */
int argc, /* 表的列數 */
char** argv, /* 指向查詢結果的指針數組, 可以由 sqlite3_column_text() 得到 */
char** col /* 指向表頭名的指針數組, 可以由 sqlite3_column_name() 得到 */
);
返回值:1 中斷查找,0 繼續列舉查詢到的數據
還有2個(次要):
const char *sqlite3_errmsg(sqlite3*);
返回錯誤碼所對應的文字說明,參數是數據庫句柄
void sqlite3_free(void*);
釋放存放錯誤信息的內存空間,sqlite3_errmsg 返回的errmsg必須用此函數釋放