我有一个自定义的 TDatasetProvider,它允许为它提供的任何数据创建新字段。
因此,假设您在原始数据集上获得了以下字段:
- 客户ID
- 姓名
- 年龄
您需要使用显示位图在 DBGrid 上选择它。好吧,你可以,因为我的 DSP 可以添加一个调用Selected
数据集数据的布尔字段。
我现在这样做的方式:
- 创建 2 个 TClientDataset 对象(Origin 和 Target)
- 在 Origin 中,我加载了从 InternalGetRecords 方法的参数中获取的数据(我覆盖了它)
- 在 Target 中,我创建了从 Origin 数据集定义的 fielddef,并添加了开发人员在设计时创建的 fielddef
- 在目标上执行 CreateDataset
- 并且,逐行(和逐字段)将数据从 Origin 数据库复制到 Target 数据集
- 最后,将 Data 变量作为 InternalGetRecords 的返回值返回。
我真的不知道是否有更优雅(更快)的方式来做到这一点。还有另一种(更快和/或优雅)的方式来获得这个结果吗?