Сброс кэшей на диск во время транзакции
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