![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Если транзакция записи открыта на соединении с базой
данных 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().
Choose any three.
SQLite C Interface
Сброс кэшей на диск
int sqlite3_db_cacheflush(sqlite3*);