Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

.Dd December 19, 2018
.Dt SQLITE3_PROGRESS_HANDLER 3
.Os
.Sh NAME
.Nm sqlite3_progress_handler
.Nd Query Progress Callbacks
.Sh SYNOPSIS
.Ft void 
.Fo sqlite3_progress_handler
.Fa "sqlite3*"
.Fa "int"
.Fa "int(*)(void*)"
.Fa "void*"
.Fc
.Sh DESCRIPTION
The sqlite3_progress_handler(D,N,X,P) interface causes the callback
function X to be invoked periodically during long running calls to
sqlite3_exec(), sqlite3_step() and sqlite3_get_table()
for database connection D.
An example use for this interface is to keep a GUI updated during a
large query.
.Pp
The parameter P is passed through as the only parameter to the callback
function X.
The parameter N is the approximate number of virtual machine instructions
that are evaluated between successive invocations of the callback X.
If N is less than one then the progress handler is disabled.
.Pp
Only a single progress handler may be defined at one time per database connection;
setting a new progress handler cancels the old one.
Setting parameter X to NULL disables the progress handler.
The progress handler is also disabled by setting N to a value less
than 1.
.Pp
If the progress callback returns non-zero, the operation is interrupted.
This feature can be used to implement a "Cancel" button on a GUI progress
dialog box.
.Pp
The progress handler callback must not do anything that will modify
the database connection that invoked the progress handler.
Note that sqlite3_prepare_v2() and sqlite3_step()
both modify their database connections for the meaning of "modify"
in this paragraph.
.Pp
.Sh SEE ALSO
.Xr sqlite3 3 ,
.Xr sqlite3_exec 3 ,
.Xr sqlite3_get_table 3 ,
.Xr sqlite3_prepare 3 ,
.Xr sqlite3_step 3