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