RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Small. Fast. Reliable.
Choose any three.

SQLite C Interface

Сброс кэшей на диск

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().