Sqlite参考手册
C界面 | C Interface
Record A Database Snapshot
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()时以下任何语句为false,则返回SQLITE_ERROR。在这种情况下,* P的最终值是不确定的。
- 数据库句柄必须处于自动提交模式。
- 数据库连接D的模式S必须是WAL模式数据库。
- 在数据库连接D的模式S上不能有打开的写入事务。
- 自从在磁盘上创建(通过任何连接)后,一个或多个事务必须已写入当前的wal文件。这意味着快照在第一次打开后不能立即在没有任何wal文件的wal模式数据库上执行。至少必须先写入一个事务。
该函数也可能会返回SQLITE_NOMEM。如果在自动提交模式下使用数据库句柄调用它,但由于某些其他原因而失败,则在模式S上是否打开读取事务是未定义的。
成功调用sqlite3_snapshot_get()所返回的sqlite3_snapshot对象必须使用sqlite3_snapshot_free()来释放,以避免内存泄漏。
sqlite3_snapshot_get()接口仅在使用SQLITE_ENABLE_SNAPSHOT编译时选项时可用。
C界面 | C Interface相关
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来
主页 | https://sqlite.org/ |
源码 | https://www.sqlite.org/src/ |
发布版本 | 3.21.0 |