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_progress_handler(sqlite3*, int, int(*)(void*), void*);

sqlite3_progress_handler(D,N,X,P) заставляет функцию обратного вызова X вызываться периодически во время длительных запросов к sqlite3_step() и sqlite3_prepare() и подобным для соединения с базой данных D. Использование в качестве примера для этого интерфейса должно сохранять GUI обновленным во время выполнения больших запросов.

Через параметр P передают единственный параметр к функции обратного вызова X. Параметр N является приблизительным количеством инструкций по виртуальной машине, которые оценены между последовательными вызовами отзыва X. Если N меньше, чем один, тогда обработчик прогресса выключен.

Только единственный обработчик прогресса может быть определен на связь для каждой базы данных, создание нового обработчика прогресса отменяет старый. Установка параметра X в NULL выключает обработчик прогресса. Обработчик прогресса также выключен, установив N к значению меньше, чем 1.

Если отзыв прогресса вернет ненулевое значение, операция прервана. Эта функция может быть использована, чтобы осуществить кнопку "Cancel" в диалоговом окне прогресса GUI.

Отзыв обработчика прогресса не должен делать ничего, что изменит соединение с базой данных, которое вызвало обработчик прогресса. Обратите внимание на то, что sqlite3_prepare_v2() и sqlite3_step() изменяют их соединения с базой данных.

Отзыв обработчика прогресса был бы первоначально только вызван от байт-кода. Это все еще могло бы быть вызвано во время sqlite3_prepare() и подобного, потому что тот установленный порядок мог бы вызвать переразбор схемы, которая включает управление байт-кодом. Однако, начиная с версии SQLite version 3.41.0, отзыв обработчика прогресса мог бы также быть вызван непосредственно от sqlite3_prepare(), анализируя и производя код для сложных запросов.