Spec-Zone.ru › SQLite

Сброс кэшей на диск во время транзакции

int sqlite3_db_cacheflush(sqlite3*);

Если открыта транзакция записи в подключении к базе данных D, и вызывается интерфейс sqlite3_db_cacheflush(D), все грязные страницы в кэше страницы, которые в данный момент не используются, записываются на диск. Грязная страница может быть в использовании, если курсор базы данных, созданный активным SQL-запросом, считывает с неё данные, или если это страница 1 файла базы данных (страница 1 всегда «в использовании»). Интерфейс sqlite3_db_cacheflush(D) сбрасывает кэши для всех схем: «main», «temp» и всех подключённых баз данных.

Если для сброса грязных страниц на диск требуется получить дополнительные блокировки базы данных, они запрашиваются. Если эти блокировки не могут быть получены немедленно, и настроен обратный вызов обработчика занятости, он вызывается стандартным образом. Если необходимая блокировка всё ещё не может быть получена, база данных пропускается, и предпринимается попытка сбросить любые грязные страницы, принадлежащие следующей (если есть) базе данных. Если какие-либо базы данных пропущены из-за невозможности получить блокировки, но другие ошибки не возникают, эта функция возвращает SQLITE_BUSY.

Если при сбросе грязных страниц на диск возникнет любая другая ошибка (например, ошибка ввода-вывода или нехватка памяти), обработка прекращается, и код ошибки SQLite возвращается вызывающей стороне немедленно.

В противном случае, если ошибки не произошло, sqlite3_db_cacheflush() возвращает SQLITE_OK.

Эта функция не устанавливает код ошибки или сообщение об ошибке для дескриптора базы данных, возвращаемые функциями sqlite3_errcode() и sqlite3_errmsg().

См. также списки Объектов, Констант и Функций.

SQLite is in the Public Domain.
https://sqlite.org/c3ref/db_cacheflush.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API