:: Архив конференции по VFP до 2005 года
Re: Принудительный сброс данных из памяти на диск
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, piva!

Цитата:
после USE КОРРЕКТНО завершать работу виндузы
Да ты похоже садист!
Т.е. надо после внесения каждого изменения в данные это делать?
Если юзер не убъёт после этого программиста, то наверняка сам повеситься




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Вот видишь Игорь - зато данные при таком раскладе теряться не будут




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, piva!

"Тогда родители пропадать будут" (c) "Трое из Простоквашино"




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Бураков Сергей

Сообщений: 280
Откуда: Calgary
Дата регистрации: 07.02.2005
Цитата:
SYS(1104) calls the API-functions SetFilePointer and WriteFile. Only cached files are written.
FLUSH calls the Windows API DuplicateHandle and CloseHandle.
FLUSH FORCE calls the Windows API FlushFileBuffers, DuplicateHandle and CloseHandle.

The FlushFileBuffers function flushes the buffers and causes all buffered data to be written to the file imediately. FORCE FLUSH writes all changes with are made to files to disk. VFP8 does NOT call this Windows API function.

VFP caches data for performance reasons. e.g. If you change a row 10 times, only the last change is written to disk. SYS(1104) writes the chached memory to the file. As SYS(1104) uses the API-function WriteFile VFP has to wait to completion. This is the reason why the use of SYS(1104) will slow performance. The API-function WriteFile typically writes data to an internal buffer that the operating system writes to disk on a regular basis. The FlushFileBuffers function writes all of the buffered information for the specified file to disk.

If you have VFP9 you should use FLUSH FORCE to write all buffers. Using VFP8 you don't have an option, you have to use SYS(1104).
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Saratoga

Сообщений: 489
Дата регистрации: 02.02.2004
Да все правильно
Раньше у них была маленькая программулька из 3-х таблиц, писаная на кларионе. Ну и когда администратор задевала ногой UPS и вырубала комп, данные вроде как не терялись. Никто им вовремя не сказал, что вообще-то так делать не совсем хорошо, а может и говорили, но они не поверили. А теперь на смену той мультяшной программке пришла программа на Fox-е c базой из 80 таблиц. Трудно им объяснить, что чем сложнее софт, тем более бережное к нему требуется отношение... "Ну у нас же была программа, в которой ничего не пропадало, когда компьютер выключался..."
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Сергей!

О как! Не знал, не знал... Ну теперь всё немного понятнее стало...




------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 2 (Гостей: 2)

© 2000-2024 Fox Club 
Яндекс.Метрика