Small. Fast. Reliable.
Choose any three.

SQLite C接口

预写日志提交挂钩

无效* sqlite3_wal_hook(
  sqlite3 *,
  int(*)(void *,sqlite3 *,const char *,int),
  空白*
);

所述sqlite3_wal_hook()函数是用来注册时调用每次数据致力于在沃尔玛模式的数据库中的回调。

提交完成并释放对数据库的关联写锁定后,SQLite会调用回调,因此,实现可以根据需要读取,写入或检查数据库。

调用回调函数时传递给它的第一个参数是注册回调时传递给sqlite3_wal_hook()的第三个参数的副本。第二个是数据库句柄的副本。第三个参数是写入的数据库的名称-“ main”或ATTACH编辑的数据库的名称。第四个参数是当前预写日志文件中的页面数,包括刚刚提交的页面数。

回调函数通常应返回SQLITE_OK。如果返回了错误代码,则该错误将通过SQLite代码库传播回来,从而使引起回调的语句报告错误,尽管该提交仍会发生。如果回调返回SQLITE_ROWSQLITE_DONE,或者返回的值与任何有效的SQLite错误代码都不对应,则结果是不确定的。

一个数据库句柄最多可以同时注册一个预写日志回调。调用sqlite3_wal_hook()会替换任何先前注册的预写日志回调。请注意, sqlite3_wal_autocheckpoint()接口和 wal_autocheckpoint编译指示都将调用sqlite3_wal_hook()并将覆盖以前的所有sqlite3_wal_hook()设置。

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