int sqlite3_db_cacheflush(sqlite3*);
Если транзакция записи открыта на соединении с базой данных D, когда вызван интерфейс sqlite3_db_cacheflush(D), любые грязные страницы в кэше страниц, которые не используются в настоящее время, сброшены на диск. Грязная страница может использоваться, если курсор базы данных, созданный активным SQL-оператором, читает с нее, или если это страница 1 файла базы данных (страница 1 всегда "в использовании"). Интерфейс sqlite3_db_cacheflush(D) сбросит кжши для всех схем: "main", "temp" и любых присоединенных БД.
Если эта функция должна получить дополнительные блокировки базы данных, прежде чем грязные страницы смогут сброситься, она это делает. Если те блокировки не могут быть получены немедленно и есть формируемый отзыв занятого обработчика, он вызван обычным способом. Если необходимая блокировка все еще не может быть получена, то база данных пропускается, и предпринята попытка, чтобы сбросить любые грязные страницы, принадлежащие следующей (если таковые имеются) базе данных. Если какие-либо базы данных пропускаются, потому что блокировки не могут быть получены, но никакая другая ошибка не происходит, эта функция возвращает SQLITE_BUSY.
Если какая-либо другая ошибка происходит, сбрасывая грязные страницы к диску (например, ошибка IO или нехватка памяти), то обработка оставлена, и SQLite немедленно вернет код ошибки.
Иначе, если никакая ошибка не происходит, sqlite3_db_cacheflush() вернет SQLITE_OK.
Эта функция не устанавливает код ошибки обработчика базы данных или сообщение, возвращенное sqlite3_errcode() и sqlite3_errmsg().