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、 UPDATE和DELETE等DML語句,該函數執行一次即可完 成。 |
6 |
int sqlite3_finalize(sqlite3_stmt *pStmt); 該函數用於銷燬prepared statement對象,否則將會造成內存泄露。 |