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

SQLite C 介面

從 wal 檔案恢復快照

int sqlite3_snapshot_recover(sqlite3 *db, const char *zDb);

如果在所有資料庫連線關閉後(透過使用 WAL 檔案SQLITE_FCNTL_PERSIST_WAL 檔案控制,或是因為最後開啟資料庫的程序在未呼叫 sqlite3_close() 的情況下退出),磁碟上仍保留一個 WAL 檔案,並且後續在該資料庫和 WAL 檔案 上開啟新的連線,則 sqlite3_snapshot_open() 介面將只能開啟新增至 WAL 檔案的最後一個交易,即使 WAL 檔案包含其他有效的交易。

此函式嘗試掃描與資料庫控制代碼 db 的資料庫 zDb 相關聯的 WAL 檔案,並使所有有效的快照可供 sqlite3_snapshot_open() 使用。如果資料庫上已經開啟讀取交易,或者資料庫不是 WAL 模式資料庫,則會產生錯誤。

如果成功,則返回 SQLITE_OK,否則返回 SQLite 錯誤碼。

此介面僅在使用 SQLITE_ENABLE_SNAPSHOT 選項編譯 SQLite 時才可用。

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