RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Small. Fast. Reliable.
Choose any three.

SQLite C Interface

Прервите продолжительный запрос

void sqlite3_interrupt(sqlite3*);
int sqlite3_is_interrupted(sqlite3*);

Эта функция заставляет любую отложенную операцию по базе данных прерываться и возвращаться. Это, как правило, вызывают в ответ на пользовательское действие, такое как нажим "Cancel" или Ctrl-C, где пользователь хочет, чтобы долгая операция по запросу немедленно остановилась.

Безопасно вызвать это из потока, отличающегося от потока, который в настоящее время управляет операцией по базе данных. Но небезопасно вызвать это с соединением с базой данных, которое закрывается или могло бы закрыться прежде возврата sqlite3_interrupt().

Если операция SQL почти закончена в то время, когда вызвана sqlite3_interrupt(), она может и не прерваться.

Операция SQL, которая прервана, возвратит SQLITE_INTERRUPT. Если прерванной операцией SQL будет INSERT, UPDATE или DELETE в явной транзакции, то вся транзакция будет отменена до прежнего уровня автоматически.

sqlite3_is_interrupted(D) может использоваться, чтобы определить, является ли прерывание в настоящее время активным для соединения с базой данных D. Это возвращает 1, если прерывание в настоящее время активен или 0 иначе.