【发布时间】:2011-10-18 15:53:37
【问题描述】:
在我的应用程序中,我只使用 DBAware 组件(少数地方除外)。
我有一个场景,我创建了一个主数据集(例如客户)、详细数据集(例如订单)、子详细数据集(例如订单商品)。通常我允许用户进行更改(数据集处于浏览模式)然后我发布。很简单。
无论如何,在编辑子数据集时,我想添加一种简单的撤消功能:打开一个表单来编辑数据集(即使用 db 组件,因此对表单的更改将更改数据集),如果用户取消操作 我想恢复打开表单之前的数据集。
现在为了实现这一点,我可以考虑在TClientDataSet 或类似组件中制作数据集的副本,但是还有其他技术吗?就像 Delphi 有可能以一种简单的方式创建数据的“快照”。用伪代码:
MySubDetailDataSet.SaveSnapShot;
SubDetailForm.ShowModal;
if ModalResult = mrCancel then MySubDetailDataSet.RestoreSnapShot;
Delphi 组件是否可以“现成”类似的东西?
顺便说一下,我使用 DevArt 组件中的 SDAC,所以如果您知道一种仅适用于这些组件而不适用于 Delphi 标准组件的技术,那么欢迎!
【问题讨论】: