powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Введенные данные теряются после самопроизвольной перезагрузки компа.
2 сообщений из 2, страница 1 из 1
Введенные данные теряются после самопроизвольной перезагрузки компа.
    #33250057
Sero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди у меня есть мною написанная программа на Visual FoxPro 7.0. Это простая программа для учета приходов и расходов товаров. Комп на котором установлена программа иногда сам по себе перезагружается. Сначала проблема была в блоке питания, потом что-то случилось с мат.платой, потом отказал куллер проца.Каждый раз до перезагрузки из программы в dbf файл вводились расходы с помощью комады INSERT INTO. Но как только происходила перезагрузка, после загрузки системы обнаруживалось что все введенные расходы исчезли. Что сделать чтоб эти расходы не исчезали после таких сбоев, ведь после команды INSERT dbf файл сохраняется в на диске? Или как сделать COPY FILE после INSERT если даже файл используется, т.е. чтоб не выдавалось сообщение FILE IS IN USE? Спасибо.
...
Рейтинг: 0 / 0
Введенные данные теряются после самопроизвольной перезагрузки компа.
    #33250069
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, есть такая команда

FLUSH

которая теоретически должна сбрасывать буфер ОС на диск. Но, по большому счету, все это не имеет смысла. Логика примерно такая.

Когда FoxPro дает команду на запись (не важно, INSERT-SQL, UPDATE-SQL, REPLACE или еще что), то запись происходит не напрямую на жесткий диск, а постепенно "спускается" по целому каскаду различных системных буферов. Не FoxPro, а уже собственно операционной системы. Если в процессе этого "спуска" произошел сбой питания, то, естесственно, информация теряется.

Ну, допустим, ты нашел средство ускорить этот "спуск". Что это тебе даст? "Мгновенным" он не будет в любом случае. Значит, вероятность потери данных все-равно остается. Ну, станет она несколько меньше. Лучше потратится на нормальное "железо". Это будет дешевле во всех смыслах.

SeroИли как сделать COPY FILE после INSERT если даже файл используется, т.е. чтоб не выдавалось сообщение FILE IS IN USE?
Считаешь, что копирование целого файла - это более быстрая операция, чем запись на диск нескольких строк? Ну, тогда используй команду

Код: plaintext
1.
select MyTab
COPY TO NewTab.dbf WITH CDX

Она копирует только открытые в данный момент таблицы. Хотя, естесственно, такая копия таблицы потеряет ссылку на контейнер базы данных. Т.е. получиться свободная таблица.

Можно еще использовать объект Scripting.FileSystemObject

http://kodu.neti.ee/~juri4/vfpplus/vbs_fso_04_ru.htm#Copy
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Введенные данные теряются после самопроизвольной перезагрузки компа.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]