![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Потеря данных [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 или как его там... ну то есть буфера надо как можно быстрее на винт сбросить).