Small. Fast. Reliable.
Choose any three.

About Sitemap Documentation Download License News Developers Support

## SQLite C Interface

## Interrupt A Long-Running Query

>     void sqlite3_interrupt(sqlite3*);

This function causes any pending database operation to abort and return at its earliest opportunity. This routine is typically called in response to a user action such as pressing "Cancel" or Ctrl-C where the user wants a long query operation to halt immediately.

It is safe to call this routine from a thread different from the thread that is currently running the database operation. But it is not safe to call this routine with a database connection that is closed or might close before sqlite3_interrupt() returns.

If an SQL operation is very nearly finished at the time when sqlite3_interrupt() is called, then it might not have an opportunity to be interrupted and might continue to completion.

An SQL operation that is interrupted will return SQLITE_INTERRUPT. If the interrupted SQL operation is an INSERT, UPDATE, or DELETE that is inside an explicit transaction, then the entire transaction will be rolled back automatically.

A call to sqlite3_interrupt() has no effect on SQL statements that are started after sqlite3_interrupt() returns.

### Invariants:

H12271 | The sqlite3_interrupt() interface will force all running SQL statements associated with the same database connection to halt after processing at most one additional row of data.
H12272 | Any SQL statement that is interrupted by sqlite3_interrupt() will return SQLITE_INTERRUPT.

### Assumptions:

A12279 | If the database connection closes while sqlite3_interrupt() is running then bad things will likely happen.

See also lists of Objects, Constants, and Functions.

This page last modified 2008/12/09 18:44:04 UTC