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

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

Отменить сохранение редактируемой записи [D7]


neat ©   (2006-01-19 08:09:00) 

Здравствуйте все!
Есть DataSet и DBGrid. Если Table.State in [dsEdit, dsInsert] и в этот момент щёлкнуть мыщью на другой строке DBGrid запись автоматически сохраняется. Как это отменить? Пробовал обработать OnCellClick

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
     if Table.State in [dsEdit, dsInsert] then Table.Cancel;
end;

- не получается - видимо Post происходит раньше. BerorePost тоже не проходит, запись всё равно сохраняется.


Рустем   (2006-01-19 13:06:00) [1]


> neat

UpdateBatch, CancelBatch...


sniknik   (2006-01-19 11:41:00) [2]

> что работаю с ADO. Там нет у Table свойства CachedUpdates.
там есть "аналог". не по таким же процедурам а по смыслу, начни с F1 по ltBatchOptimistic.


Desdechado   (2006-01-19 11:19:00) [3]

> у Table свойства CachedUpdates
так не работай с Table, это гадость
работай с кэшированными датасетами, где пользователь может отменить изменения как в отдельных записях, так и в выборке в целом, не сохраняясь


neat   (2006-01-19 09:46:00) [4]

Извиняюсь, не сказал сразу, что работаю с ADO. Там нет у Table свойства CachedUpdates. Попробовал использовать CancelUpdates. Как-то странно... Изменения не сохраняются, но почему-то эта строка добавляется в конце таблицы ко всем имеющимся.

procedure TForm1.T1BeforePost(DataSet: TDataSet);
begin
   if T1.State = dsEdit then
   T1.CancelUpdates;
end;

Но здесь ещё подсказали вариант.

procedure TForm1.T1BeforePost(DataSet: TDataSet);
begin
   if T1.State = dsEdit then begin
       T1.Cancel;
       Abort;
   end;
end;

Работает. Спасибо всем.


Vemer   (2006-01-19 09:21:00) [5]

Dataset.CacheUpdate := True;
Dataset.CancelUpdate / Dataset.ApplyUpdate by need.


Sergey13   (2006-01-19 09:02:00) [6]

BeroreScroll?


Наверх

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