sqlite庫學習(4)sqlite庫核心API

 

1

Int sqlite3_open(const char *filename, sqlite3 **ppDb)

該函數打開一個指向 SQLite 數據庫文件的連接,返回一個用於其他 SQLite 程序的數據庫連接對象。如果 filename 參數是 NULL ':memory:',那麼 sqlite3_open() 將會在 RAM 中創建一個內存數據庫,這只會在 session 的有效時間內持續。

如果文件名 filename 不爲 NULL,那麼 sqlite3_open() 將使用這個參數值嘗試打開數據庫文件。如果該名稱的文件不存在,sqlite3_open() 將創建一個新的命名爲該名稱的數據庫文件並打開。

2

int sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)

該函數提供了一個執行 SQL 命令的快捷方式,SQL 命令由 sql 參數提供,可以由多個 SQL 命令組成。在這裏,第一個參數 sqlite3 是打開的數據庫對象,sqlite_callback 是一個回調,data 作爲其第一個參數,errmsg 將被返回用來獲取程序生成的任何錯誤。

sqlite3_exec() 程序解析並執行由 sql 參數所給的每個命令,直到字符串結束或者遇到錯誤爲止。

3

int sqlite3_close(sqlite3*)

該函數關閉之前調用 sqlite3_open() 打開的數據庫連接。所有與連接相關的語句都應在連接關閉之前完成。

如果還有查詢沒有完成,sqlite3_close() 將返回 SQLITE_BUSY 禁止關閉的錯誤消息。

4

int sqlite3_prepare(sqlite3 *db,const char *zSql,int nByte,sqlite3_stmt **ppStmt,const char **pzTail)

該函數將SQL文本轉換爲prepared_statement對象,並在函數執行後返回該對象的指

針。事實上,該函數並不會評估參數指定SQL語句,它僅僅是將SQL文本初始化爲待

執行的狀態。最後需要指出的,對於新的應用程序我們可以使用sqlite3_prepare_v2

口函數來替代該函數以完成相同的工作。

5

int sqlite3_step(sqlite3_stmt*)

該函數用於評估sqlite3_prepare函數返回的prepared_statement對象,在執行完該函

數之後, prepared_statement對象的內部指針將指向其返回的結果集的第一行。如果

打算進一步迭代其後的數據行,就需要不斷的調用該函數,直到所有的數據行都遍歷

完畢。然而對於INSERT UPDATEDELETEDML語句,該函數執行一次即可完

成。

6

int sqlite3_finalize(sqlite3_stmt *pStmt);

該函數用於銷燬prepared statement對象,否則將會造成內存泄露。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章