在线文档教程
Sqlite
C界面 | C Interface

Query Progress Callbacks

Query Progress Callbacks

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

sqlite3_progress_handler(D,N,X,P)接口在长时间对数据库连接D调用sqlite3_exec(),sqlite3_step()和sqlite3_get_table()期间定期调用回调函数X.此接口的一个示例用法是在大型查询期间保持GUI更新。

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

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

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

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