SQLite C 接口

查询进度回调

void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);

sqlite3_progress_handler(D,N,X,P) 接口导致回调函数 X 在长时间运行时调用 sqlite3_exec()sqlite3_step()sqlite3_get_table()用于数据库连接 D。此接口的一个示例使用是在大型查询期间保持 GUI 更新。

参数 P 作为回调函数 X 的唯一参数传递。参数 N 是在回调 X 的连续调用之间评估的 虚拟机指令的近似数量。如果 N 小于 1,则禁用进度处理程序.

每个数据库连接一次只能定义一个进度处理程序 设置新的进度处理程序会取消旧的。将参数 X 设置为 NULL 会禁用进度处理程序。进度处理程序也可以通过将 N 设置为小于 1 的值来禁用。

如果进度回调返回非零值,则操作中断。此功能可用于在 GUI 进度对话框上实现“取消”按钮。

进度处理程序回调不得执行任何会修改调用进度处理程序的数据库连接的操作。注意,sqlite3_prepare_v2()sqlite3_step()都针对本段“修改”的意思修改了自己的数据库连接。

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