DBGrid 中的 Delphi 2010 计算列
Posted
技术标签:
【中文标题】DBGrid 中的 Delphi 2010 计算列【英文标题】:Delphi 2010 Calculated Column In DBGrid 【发布时间】:2010-05-09 00:18:54 【问题描述】:我有一个带有 DBGrid 的 Delphi 2010 ADO 程序。其数据集从 Access 查询中选择。该查询有一个定义为 CStr(Amount*UnitCount)+" "+Unit 的列。查询在 Access 中运行良好。但是 DBgrid 拒绝显示该列的值
【问题讨论】:
【参考方案1】:您需要在连接到网格的 TDataset 后代中定义一个计算字段,然后在 OnCalcFields 事件中实现该字段的计算。
【讨论】:
这当然有效。但是,如果 db 引擎在查询中进行翻译,为什么控件没有看到查询并显示值是没有意义的。 这取决于您是否希望 Delphi 进行计算或 DB 引擎。如果您希望数据库引擎执行此操作,请将您的查询重写为“从 mytable 中选择 a, b, (a+b) as thesum”。这样,包括计算在内的结果由数据库引擎完成,并且不需要 delphi 中的计算字段,但是可能更难将新数据插入/更新到表中。根据 TDataset 后代的实现,它可能无法识别计算字段,从而使您的数据集无法更新,但必须对其进行测试。选择权在你。以上是关于DBGrid 中的 Delphi 2010 计算列的主要内容,如果未能解决你的问题,请参考以下文章