SQLite C 接口

记录数据库快照

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

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()释放 以避免内存泄漏。

sqlite3_snapshot_get()接口仅在使用 SQLITE_ENABLE_SNAPSHOT编译时选项时可用。

另请参阅 对象常量函数的列表。