-
Чтобы и свой кеш и системный. Т.е. после некого вызова данные гарантированно были на жестком диске. Можно так?
-
SQLite точно сбросит, при закрытии коннекта, если нет специальных функций. а вот на системный гарантий нет.
-
даже если на системный тоже есть функция сброса, есть еще кеш собственно диска...
-
Т.е. заставить ее выполнить FlushFileBuffers (или никсовый аналог) нельзя?
-
почему нельзя? найдешь аналог - выполняй. что в справке?
-
> что в справке?
Я не очень по английски понимаю и не совсем могу отличить где речь идет о сбросе кеша на диск (просто запись), а где сброс именно дискового кеша.
А как выполнить, если файловый указатель недоступен?
-
при чем тут файловый? он думаешь прямо в файл пишет? а индексы, а транзакции? изменения прямо в файле приведут к множественным перезаписям всего файла.
т.что либо у самого SQLite/компонента есть функция сброса, либо нет, к файлам не лезь.
помедитируй лучше над первым ответом
> SQLite точно сбросит, при закрытии коннекта, если нет специальных функций.
-
> при чем тут файловый?
При том, что если я запишу данные в файл и передам сообщение о том что записал, а в этот момент, например, отключится свет и получится, что я сообщение передал, а в файле данных не будет, т.к. они были в кеше (sqlite или файловом) - это будет очень плохо.
-
Посмотрел исходник sqlite. Вызовы, интересующие меня в нем есть, потом разберусь при каких условиях они происходят.
-
> отключится свет
UPS
-
> отключится свет
ну это частный случай. мало ли что может с компом случится.
-
пытаясь избежать чужих ошибок, не наделай своих... случится что то скорее с твоим "умным" кодом по "предотвращению".
только с компом проблема будет с вероятностью одна на тысячу, еще и в маловероятных событиях, а в твоем коде в одном из ста при том на каждый запуск.
-
Это точно. Спасибо за совет.