![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не сохраняются изменения в БД [D7, Paradox]
Альберт © (2003-01-13 20:35:00)Кто-нибудь знает, из-за чего программа может не сохранять изменения в БД (Paradox) при закрытии?
Альберт
TTCustomDelphiMaster (2003-01-15 18:02:00) [1]procedure TBDEDataSet.FlushBuffers;
begin
CheckBrowseMode;
Check(DbiSaveChanges(Handle));
end;
Дмитрий К.К. (2003-01-15 08:12:00) [2]dbiSaveChanges сидит, между прочим, в dbiProcs. А метод хороший.
gek (2003-01-15 07:07:00) [3]Обязательно прислушайся к совету VAleksey © (14.01.03 06:52)
Это 100% вариант
Альберт (2003-01-14 21:02:00) [4]Спасибо всем, кто согласился мне помочь!
To TTCustomDelphiMaster: вызов Table.FlushBuffers помог.
To Роман Лицевич: данные в программе изменяются и при помощи компонента DBGrid и коде.
To VAleksey: ОС Windows Me.
Проблема была в том, что изменения иногда сохраняли, а иногда и нет, т.е. в процессе работы вдруг выяснялось, что программа снова работает с базой данных, сведения которой были давно изменены. Ощущение было такое, что ОС по собственной инициативе сделала копию моей БД, потом я с ней работал (изменял данные) и после какого-то сбоя в системе, она восстановила прежнюю копию БД со старыми сведениями. Это произошло всего раза три, поэтому я не смог выявить закономерность и определить точные причины, с чем это могло быть связано. Сама программа запускалась и из IDE Delphi и так, кроме того, иногда я вносил изменения напрямую через утилиту SQL Explorer. В первый раз я обнаружил потерю данных после перезагрузки ОС, работа которой завершилась аварийно (правда, программа при этом запущена не была, IDE Delphi тоже). Во второй раз это произошло, когда IDE Delphi выдала какую-то ошибку при работе с этой программой. А в третий раз - когда я экспериментировал с программой шестой час подряд, не выключая компьютер. Запускал программу не через IDE, а из Windows.
Надеюсь, что использование FlushBuffers поможет не допустить повторения этой ситуации.
Альберт
VAleksey (2003-01-14 06:52:00) [5]ОС какая ?
Было такое у меня на Win2000. Что-то с настройками BDE наверное. Я с этим справился с помощью:
Uses BDE;
...
dbiSaveChanges(Table1.Handle);
TTCustomDelphiMaster (2003-01-13 20:39:00) [6]Попробуй FlushBuffers
Роман Лицевич (2003-01-13 20:38:00) [7]А как изменяются данные? При помощи чего?