小巧、快速、可靠。
擇三。

SQLite C 介面

單步驟查詢執行介面

int sqlite3_exec(
  sqlite3*,                                  /* An open database */
  const char *sql,                           /* SQL to be evaluated */
  int (*callback)(void*,int,char**,char**),  /* Callback function */
  void *,                                    /* 1st argument to callback */
  char **errmsg                              /* Error msg written here */
);

sqlite3_exec() 介面是一個方便的包裝函式,它包裝了 sqlite3_prepare_v2()sqlite3_step()sqlite3_finalize(),允許應用程式執行多個 SQL 陳述式,而無需使用大量的 C 程式碼。

sqlite3_exec() 介面在其第一個參數指定的資料庫連線的上下文中,執行傳遞到其第二個參數的零個或多個以 UTF-8 編碼、以分號分隔的 SQL 陳述式。如果 sqlite3_exec() 的第三個參數的回呼函式不是 NULL,則會針對從評估的 SQL 陳述式產生的每個結果列呼叫它。 sqlite3_exec() 的第四個參數會傳遞到每個回呼呼叫的第一個參數。如果 sqlite3_exec() 的回呼指標為 NULL,則永遠不會呼叫回呼,且結果列會被忽略。

如果在評估傳遞給 sqlite3_exec() 的 SQL 陳述式時發生錯誤,則目前陳述式的執行會停止,後續陳述式會被跳過。如果 sqlite3_exec() 的第五個參數不是 NULL,則任何錯誤訊息都會寫入從 sqlite3_malloc() 獲得的記憶體中,並透過第五個參數傳回。為避免記憶體洩漏,應用程式在不再需要錯誤訊息字串後,應在透過 sqlite3_exec() 的第五個參數返回的錯誤訊息字串上呼叫 sqlite3_free()。如果 sqlite3_exec() 的第五個參數不是 NULL 且沒有發生錯誤,則 sqlite3_exec() 會在返回之前將其第五個參數中的指標設定為 NULL。

如果 sqlite3_exec() 回呼返回非零值,則 sqlite3_exec() 常式會返回 SQLITE_ABORT,而不會再次呼叫回呼,也不會執行任何後續的 SQL 陳述式。

sqlite3_exec() 回呼函式的第二個參數是結果中的欄位數。 sqlite3_exec() 回呼的第三個參數是一個指向字串的指標陣列,這些字串如同從 sqlite3_column_text() 獲得,每個欄位一個。如果結果列的元素為 NULL,則 sqlite3_exec() 回呼的對應字串指標為 NULL 指標。 sqlite3_exec() 回呼的第四個參數是一個指向字串的指標陣列,其中每個項目代表從 sqlite3_column_name() 獲得的對應結果欄位的名稱。

如果 sqlite3_exec() 的第二個參數是 NULL 指標、指向空字串的指標,或僅包含空格和/或 SQL 註釋的指標,則不會評估任何 SQL 陳述式,且資料庫不會被更改。

限制

另請參閱 物件常數函式 列表。