|
|
|
Введенные данные теряются после самопроизвольной перезагрузки компа.
|
|||
|---|---|---|---|
|
#18+
Люди у меня есть мною написанная программа на Visual FoxPro 7.0. Это простая программа для учета приходов и расходов товаров. Комп на котором установлена программа иногда сам по себе перезагружается. Сначала проблема была в блоке питания, потом что-то случилось с мат.платой, потом отказал куллер проца.Каждый раз до перезагрузки из программы в dbf файл вводились расходы с помощью комады INSERT INTO. Но как только происходила перезагрузка, после загрузки системы обнаруживалось что все введенные расходы исчезли. Что сделать чтоб эти расходы не исчезали после таких сбоев, ведь после команды INSERT dbf файл сохраняется в на диске? Или как сделать COPY FILE после INSERT если даже файл используется, т.е. чтоб не выдавалось сообщение FILE IS IN USE? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2005, 22:24:41 |
|
||
|
Введенные данные теряются после самопроизвольной перезагрузки компа.
|
|||
|---|---|---|---|
|
#18+
Ну, есть такая команда FLUSH которая теоретически должна сбрасывать буфер ОС на диск. Но, по большому счету, все это не имеет смысла. Логика примерно такая. Когда FoxPro дает команду на запись (не важно, INSERT-SQL, UPDATE-SQL, REPLACE или еще что), то запись происходит не напрямую на жесткий диск, а постепенно "спускается" по целому каскаду различных системных буферов. Не FoxPro, а уже собственно операционной системы. Если в процессе этого "спуска" произошел сбой питания, то, естесственно, информация теряется. Ну, допустим, ты нашел средство ускорить этот "спуск". Что это тебе даст? "Мгновенным" он не будет в любом случае. Значит, вероятность потери данных все-равно остается. Ну, станет она несколько меньше. Лучше потратится на нормальное "железо". Это будет дешевле во всех смыслах. SeroИли как сделать COPY FILE после INSERT если даже файл используется, т.е. чтоб не выдавалось сообщение FILE IS IN USE? Считаешь, что копирование целого файла - это более быстрая операция, чем запись на диск нескольких строк? Ну, тогда используй команду Код: plaintext 1. Она копирует только открытые в данный момент таблицы. Хотя, естесственно, такая копия таблицы потеряет ссылку на контейнер базы данных. Т.е. получиться свободная таблица. Можно еще использовать объект Scripting.FileSystemObject http://kodu.neti.ee/~juri4/vfpplus/vbs_fso_04_ru.htm#Copy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2005, 22:44:27 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33250069&tid=1593565]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
212ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 199ms |
| total: | 525ms |

| 0 / 0 |
