В моем приложении я использую исключительно компоненты DBAware (кроме нескольких мест).
У меня есть сценарий, в котором я создаю основной набор данных (например, клиент), набор подробных данных (например, заказы), набор данных субдеталей (например, элементы заказа). Обычно я разрешаю пользователям вносить изменения (набор данных находится в режиме просмотра), а затем я публикую сообщения. Простой.
В любом случае, при редактировании набора данных я хочу добавить некоторую простую функцию отмены: открывается форма для редактирования набора данных (то есть с помощью db componets, поэтому изменения формы изменят набор данных), если пользователь отменяет операция Я хотел бы восстановить набор данных, как это было до открытия формы.
Теперь для реализации этого я могу подумать о создании копии набора данных в TClientDataSet
или аналогичном компоненте, но есть ли другие технические приемы? Как и в Delphi, можно легко создать «снимок» данных. С псевдокодом:
MySubDetailDataSet.SaveSnapShot;
SubDetailForm.ShowModal;
if ModalResult = mrCancel then MySubDetailDataSet.RestoreSnapShot;
Возможно ли что-то подобное "с полки" с компонентами Delphi?
Кстати, я использую SDAC из компонентов DevArt, поэтому, если вы знаете методику, которая доступна только для этих компонентов, а не для стандартных Delphi, это приветствуется!