小巧、快速、可靠。
任選三項。

Session 模組 C 介面

建立新的 Session 物件

int sqlite3session_create(
  sqlite3 *db,                    /* Database handle */
  const char *zDb,                /* Name of db (e.g. "main") */
  sqlite3_session **ppSession     /* OUT: New session object */
);

建立新的 Session 物件,並附加至資料庫處理常式 db。如果成功,會將指向新物件的指標寫入 *ppSession,並傳回 SQLITE_OK。如果發生錯誤,會將 *ppSession 設為 NULL,並傳回 SQLite 錯誤碼 (例如 SQLITE_NOMEM)。

可以建立多個附加至單一資料庫處理常式的 Session 物件。

使用此函式建立的 Session 物件,應在附加至它們的資料庫處理常式本身關閉之前,使用 sqlite3session_delete() 函式刪除。如果在刪除 Session 物件之前關閉資料庫處理常式,則在 Session 物件上呼叫任何 Session 模組函式 (包括 sqlite3session_delete()) 的結果是未定義的。

由於 Session 模組使用 sqlite3_preupdate_hook() API,因此應用程式無法在已附加一個或多個 Session 物件的資料庫處理常式上註冊預更新掛勾。也不可能為已定義預更新掛勾的資料庫處理常式建立 Session 物件。嘗試執行這兩件事的結果是未定義的。

Session 物件將用於為資料庫 zDb 中的資料表建立變更集,其中 zDb 是「main」、「temp」或附加資料庫的名稱。如果在建立 Session 物件時資料庫 zDb 未附加至資料庫,並非錯誤。

另請參閱 物件常數函數 的清單。