Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не сохраняются изменения в БД [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]

А как изменяются данные? При помощи чего?


Наверх

Титульная страница Поиск, карта сайта Написать письмо