小巧、快速、可靠。
選擇其中三項。

SQLite C 介面

記錄資料庫快照

int sqlite3_snapshot_get(
  sqlite3 *db,
  const char *zSchema,
  sqlite3_snapshot **ppSnapshot
);

sqlite3_snapshot_get(D,S,P) 介面嘗試建立一個新的 sqlite3_snapshot 物件,用於記錄資料庫連線 D 中 schema S 的目前狀態。成功時,sqlite3_snapshot_get(D,S,P) 介面會將指向新建立的 sqlite3_snapshot 物件的指標寫入 *P 並返回 SQLITE_OK。如果呼叫此函式時,schema S 上尚未開啟讀取交易,則會自動開啟一個。

此函式要成功,必須滿足以下條件。如果在呼叫 sqlite3_snapshot_get() 時,以下任何陳述為假,則會返回 SQLITE_ERROR。在這種情況下,*P 的最終值未定義。

此函式也可能返回 SQLITE_NOMEM。如果在資料庫控制代碼處於自動提交模式下呼叫此函式,但由於其他原因而失敗,則不確定是否會在 schema S 上開啟讀取交易。

從成功呼叫 sqlite3_snapshot_get() 返回的 sqlite3_snapshot 物件必須使用 sqlite3_snapshot_free() 釋放,以避免記憶體洩漏。

sqlite3_snapshot_get() 介面僅在使用 SQLITE_ENABLE_SNAPSHOT 編譯時選項時可用。

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