int sqlite3_snapshot_recover(sqlite3 * db,const char * zDb);
如果WAL文件在所有数据库连接关闭后仍保留在磁盘上(通过使用SQLITE_FCNTL_PERSIST_WAL 文件控件, 或者因为退出打开数据库的最后一个过程而没有调用sqlite3_close())退出,并且随后在该数据库上打开了一个新连接,并且WAL文件,sqlite3_snapshot_open()接口将仅能打开添加到WAL文件中的最后一个事务,即使WAL文件包含其他有效事务也是如此。
此函数尝试扫描与数据库句柄db的数据库zDb关联的WAL文件,并使所有有效快照可用于sqlite3_snapshot_open()。如果数据库上已经存在一个读取事务,或者该数据库不是WAL模式数据库,则会出现错误。
如果成功,则返回SQLITE_OK,否则返回SQLite错误代码。
仅当使用SQLITE_ENABLE_SNAPSHOT选项编译SQLite时,此接口才可用 。