![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
нужно сбросить закешированные записи в базу [D5, Paradox]
RA © (2007-04-25 11:47:00)Есть прога не делфах с использованием BDE. Таблицы paradox. Во время работы прога постоянно изменяет таблицы базы. Но одна мелочь - прога глюковатая, поэтому частенько виснет, если её снять через диспетчер задач, то все изменения когторые она сделала в базе проподают. Т.е. на сколько понимаю BDE кеширует записи, а после снятия программы не применяет изменения.
Можно ли как-то заставить BDE принудительно сбрасывать весь кэш на диск, чтобы если прога всё же вылетит данные в базе остались.
RA (2007-04-25 15:44:00) [1]Почему они могут не попасть, если я переоткрываю уже AfterPost?
Desdechado (2007-04-25 15:32:00) [2]Что за тип у твоего урадата?
И почему сброс буферов после открытия, а не закрытия? И зачем после Post переоткрывать набор данных, данные-то при этом в таблицы могут и не попасть?
RA (2007-04-25 15:17:00) [3]Пишу FlushBuffers после каждого обновления таблицы. Вот так:
procedure TDataModule2.TableUpadateAfterPost(DataSet: TDataSet);
begin
TableUpadate.Close;
TableUpadate.Open;
TableUpadate.FlushBuffers;
TableUpadate.Close;
TableUpadate.Open;
end;
Но всё равно кеш не сбрасывается.
Виталий Панасенко (2007-04-25 13:06:00) [4]LOCAL SHARE=TRUE если БД локальная
Desdechado (2007-04-25 12:05:00) [5]FlushBuffers (в проге, естественно)