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

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

CachedUpdates и отмена дейтсвий [D7]


Opilki_Inside ©   (2006-08-07 15:45:00) 

CachedUpdates штука конечно хорошая. Но вот чего явно ей не достает - так это нормальная отмена последнего действия.
Чисто теоретически ее можно реализовать с помощью обработки соответствующих событий, может кто делал нечто подобное?


Медведъ   (2006-08-07 17:57:00) [1]

веди лог изменений в отдельном датасете - значения полей до их изменения
при откате извлекай последнюю и пост их в рабочий датасет


Opilki_Inside   (2006-08-07 17:32:00) [2]


> Встречный вопрос - почему в MS Paint сделан откат всего
> одной операции? Несложно ведь...


А почему в WordPad'е сделан откат нескольких операций?


Desdechado   (2006-08-07 17:23:00) [3]

> почему разработчики не сделали этого в датасете, кэш-то
> все равно хранит все изменения.
Он хранит изменения, а не их последовательность.

Встречный вопрос - почему в MS Paint сделан откат всего одной операции? Несложно ведь...


Opilki_Inside   (2006-08-07 17:14:00) [4]


> Используй TClientDataset

Была такая мысль, но я не понимаю почему разработчики не сделали этого в датасете, кэш-то все равно хранит все изменения...


> А уж это извините-с не реализовано. Напиши свой датасет
> и реализуй.

Ну так я и спрашивал - кто-нибудь писал что-то подобное? А что этого нет я и так знаю.


evvcom   (2006-08-07 16:44:00) [5]

> [2] Opilki_Inside ©   (07.08.06 16:40)

Cancel отменяет только изменения текущей редактируемой записи, т.е. тех, которые не зафиксированы методом Post. А все изменения отменяются методом CancelUpdates.

> И что бы была возможность отменять изменения, пока кэш не
> станет пустым...

А уж это извините-с не реализовано. Напиши свой датасет и реализуй.


Romkin   (2006-08-07 16:41:00) [6]

Используй TClientDataset


Opilki_Inside   (2006-08-07 16:40:00) [7]

Хех... Я наверно непонятно объяснил...

Если я вызову процедуру Cancel, то отменятся все записи, которые пользователь отредактировал/удалил, ну и конечно которые находились в локальном кэше.
Я хочу, что бы когда пользователь нажимал "Отмена" - отменялось только последнее действие пользователя (хотя бы отменялись изменения в конкретной записи, кстати там есть функция отменающая изменения в текущей записи...), и эта процедура не затрагивала всех записей(если их > 1 ест-но) в кэше. И что бы была возможность отменять изменения, пока кэш не станет пустым... Теперь понятно?


Desdechado   (2006-08-07 15:57:00) [8]

Dataset.Cancel


Наверх

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