关于ADOTable的onCalcFields事件的执行

探讨在Delphi中使用ADOTable组件时,如何优化onCalcFields事件的性能,避免每次移动记录指针时重复计算,提出通过在Table所在模块添加标记变量来控制计算过程的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于ADOTable的onCalcFields事件的执行 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061224092425136.html
在Table中有一个计算字段,在oncalcfields事件中计算过程执行的较长,计算的时间也较长,不过整个表只是显示,不需要修改数据,因此,只要第一次显示出来就后面就不需要再重新计算,现在问题是我每次移动记录指针,都要重新执行oncalcfields过程,这样就显得整个过程特别慢,有没有什么办法能够只要oncalcfields事件只在程序刚执行的时候执行,别的时候都不执行?

我建议你在后台表中增加一个字段,把计算好的值放进去。每次增加记录或修改记录的时候更新该字段。  
   
  计算字段是每次redraw列的时候都要重新计算的。

Table1.AutoCalcFields:=False;  
 

我不想改动后台数据库,至于无天说的我试过了,没有用!!

在你的Table所在的模块加一个标记,初始为False,计算一次后,设置为True,计算事件中进行判断。  
 

转载于:https://www.cnblogs.com/delphi2007/archive/2008/10/20/1314904.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值