【发布时间】:2011-07-18 02:49:44
【问题描述】:
我需要向 TDataSet 添加其他字段,这些字段在基础数据库中不存在,但可以从现有字段派生。我可以使用 caclulated 字段轻松地做到这一点,并且效果很好。
现在我想编辑这些字段并将更改的数据写回。我可以反转计算以将数据写回现有字段,但 DB 控件不允许我编辑计算字段。
有什么方法可以让我这样做吗?
更新: 好的,关于背景的更多细节。
数据集有一个 blob 字段,它是一个 TBytes 表示。一些字节被标识为包含可以用现有 DB 编辑字段以方便的方式表示的信息。但是,并非所有字节都是已知的,因此 TBytes 表示必须保持原样,以便通过另一个知道它的应用程序进行处理。此应用还可以修改现有记录并插入新记录。
数据集中不同记录的 TBytes 通常映射到不同的字段表示,尽管在数据集上设置过滤器或范围将确保它们具有相同的映射。
正如我所说,提取已知字节并通过计算字段将其转换为字符串、日期、数字等是没有问题的。也可以将这些值重新转换为 TBytes。问题在于使这些额外的字段可编辑,同时保持数据集导航不变。
如果有帮助:我们有执行双向映射的类,将字段公开为已发布的属性。
【问题讨论】:
-
计算字段按定义是只读的(嗯,在 CalcFields 阶段它们不是)。请更详细地说明您的目标。
-
您是否愿意或已经在使用 TClientDataSets?
-
我愿意接受任何事情。仍在调查其他建议,但还不满意。
标签: delphi dataset calculated-field