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 時才可用。