int sqlite3_snapshot_get( sqlite3 *db, const char *zSchema, sqlite3_snapshot **ppSnapshot );
The sqlite3_snapshot_get(D,S,P) 接口尝试创建一个新的 sqlite3_snapshot 对象,该对象记录数据库连接 D 中模式 S 的当前状态。成功时,sqlite3_snapshot_get(D,S,P) 接口会将指向新创建的 sqlite3_snapshot 对象的指针写入 *P 并返回 SQLITE_OK。如果调用此函数时模式 S 上尚未打开读事务,则会自动打开一个事务。
此函数要成功,必须满足以下条件。如果 sqlite3_snapshot_get() 被调用时,以下任何一个语句为假,则返回 SQLITE_ERROR。在这种情况下,*P 的最终值是未定义的。
此函数也可能返回 SQLITE_NOMEM。如果它是在数据库句柄处于自动提交模式的情况下被调用,但由于其他原因而失败,则模式 S 上是否打开读事务是未定义的。
从 sqlite3_snapshot_get() 的成功调用返回的 sqlite3_snapshot 对象必须使用 sqlite3_snapshot_free() 释放,以避免内存泄漏。
仅当使用 SQLITE_ENABLE_SNAPSHOT 编译时选项时,sqlite3_snapshot_get() 接口才可用。