可以在delphi数据集中创建虚假数据字段吗?

pra*_*mer 11 delphi dataset

我想在DataSet(而不是ClientDataSet)中创建一个'假'数据字段:

  • 该字段不应存储在db中
  • 它不是计算字段(应允许用户输入输入数据)
  • 该字段具有业务逻辑含义,因此在用户更新其值后,它应更新其他字段(使用OnFieldChange事件)

我知道我可以有一个简单的无dbaware控件,捕获它的OnChange事件并在那里执行计算(或调用DataSet所在的DataModule函数)但我认为如果我可以重新利用数据集自动绑定db-更干净ware控件和数据集事件..

这样,Form(Presentation)和DataModule(Model)之间的唯一连接就是DataSet(更少耦合).

PD:我正在使用fibplus,我认为解决方案(如果有的话)将处于VCL级别.

谢谢!

Mar*_*ams 10

您是否尝试过使用InternalCalc字段?您的数据感知控件将允许您编辑InternalCalc字段的值,并将值存储在数据集中.

如果您在设计时在数据集(TClientDataSet,TQuery等)中创建InternalCalc字段,那么它几乎就是您所要求的.