关于ADOTable的onCalcFields事件的执行 Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiDB/html/delphi_20061224092425136.html
在Table中有一个计算字段,在oncalcfields事件中计算过程执行的较长,计算的时间也较长,不过整个表只是显示,不需要修改数据,因此,只要第一次显示出来就后面就不需要再重新计算,现在问题是我每次移动记录指针,都要重新执行oncalcfields过程,这样就显得整个过程特别慢,有没有什么办法能够只要oncalcfields事件只在程序刚执行的时候执行,别的时候都不执行?
我建议你在后台表中增加一个字段,把计算好的值放进去。每次增加记录或修改记录的时候更新该字段。
计算字段是每次redraw列的时候都要重新计算的。
Table1.AutoCalcFields:=False;
我不想改动后台数据库,至于无天说的我试过了,没有用!!
在你的Table所在的模块加一个标记,初始为False,计算一次后,设置为True,计算事件中进行判断。