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 未附加至資料庫,並非錯誤。