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

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

Потеря данных [D6, Paradox]


Andreika ©   (2002-12-31 18:16:00) 

Драсьте!
Есть простенькая прога по обработке БД (Paradox: две связанные таблицы + два справочника). Однако? приходится в настоящее время заносить большой объем информации. И вот давеча юзер пожаловался мне, что, после того как у него завис комп, улетели в неизвестном направлении все записи, которые он усердно забивал, начиная с момента ее открытия. Впервые с этим столкнулся и сильно удивился, разбираться времени еще не было. Может кто объяснит, что же произошло и как этого избежать в будущем?

Пасиба!


Andreika   (2003-01-03 12:26:00) [1]

Пардон, Prooksius-у также отдельное пасиба!


Andreika   (2003-01-03 12:11:00) [2]

Всем пасиба! Отдельное - TTCustomDelphiMaster-у.
FlushBuffers работает. У-р-р-а-а-а!!!


vovkin   (2003-01-02 21:36:00) [3]

Ну тык выдь ... Paradox основан на работе с файлами очень жестко ( это не SQL сервер где все централизовано) и ессно, если буферы(а) файла не сбросить на диск, а тем более, когда машина обвисла бежнадежно, таки информация не сбросится на диск. Это раз, во вторых, проверь свою работу в транзакциях, мож где остается незакрытая транзякция? А Post таки опять работает только с кэшем, посему, после Post инфа попадает в буффер, а не физически в файл. Так скать, для ускорения работы


TTCustomDelphiMaster   (2003-01-02 21:35:00) [4]

FlushBuffers для TBDEDataSet. Post помещает данные в кэш.


Pat   (2003-01-02 21:25:00) [5]

вот нашел в faq"е:
http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988623315&n=14
Возникло несколько вопросов....
FlushBuffers только для Д3?
Post не подходит?


TTCustomDelphiMaster   (2003-01-02 20:43:00) [6]

Насколько я помню FlushBuffers сбрасывает кэш на диск. Выполняй его после Post.


Prooksius   (2003-01-02 20:35:00) [7]

Посмотри пример
C:\Program Files\Borland\Delphi6\Demos\Db\Mastapp\


Andreika   (2003-01-02 20:15:00) [8]

Народ, я пользовался стандартными компонентами TDatabase, TTable. БД - локальная. Причина улета данных ясна как божий день. Но я так и не нашел ту самую переключалку, которая отменяет/разрешает кэширование данных. Что нужно сделать, чтоб комп сразу сбрасывал данные на диск, а не копил их в каком-то буфере в ожидании финиша?


TTCustomDelphiMaster   (2003-01-01 20:21:00) [9]


> Может кто объяснит, что же произошло


Информация сначала заносится в кэш. При нажатии на Reset этот кэш погиб со всеми записями.


Anatoly Podgoretsky   (2003-01-01 18:48:00) [10]

Local Share = TRUE


Prooksius   (2003-01-01 18:31:00) [11]

Ну в первую очередь - сменить БД. Paradox - ненадежная.
Предлагаю IB.
Если не устраивает, всегда стартуй и завершай транзакции явно, почаще сохраняй на диск изменения (FlushBuffers или как его там... ну то есть буфера надо как можно быстрее на винт сбросить).


Наверх

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