Вход:  Пароль:  
FreeSource: SQLite/sqlite3BusyHandler ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

sqlite3_busy_handler



Этот вызов позволяет указать пользовательскую функцию, которая будет вызываться в случае, если файл баз данных был заблокирован другим процессом или потоком. Если указатель на обработчик равен NULL, то sqlite3_exec()? вернет SQLITE_BUSY немедленно при доступе к заблокированной таблице. Если обработчик указан, sqlite3_exec()? вызовет его с двумя аргументами. Второй аргумент – предыдущее количество вызовов обработчика, при доступе к заблокированному ресурсу. Если обработчик вернул ноль, то sqlite3_exec()? вернет SQLITE_BUSY, в противном случае, sqlite3_exec()? будет пытаться открыть таблицу в цикле.


Обработчик по умолчанию – NULL.


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


Ссылок на эту страницу нет


 
Файлы [Скрыть файлы/форму]
Комментариев нет. [Показать комментарии/форму]