![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
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(),
анализируя и производя код для сложных запросов.
Choose any three.
SQLite C Interface
Отзывы прогресса запроса
void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);