您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> 关于ADOQuery的onCalcFields计算字段的触发,很奇怪,大家都会碰到的,进来看看

关于ADOQuery的onCalcFields计算字段的触发,很奇怪,大家都会碰到的,进来看看

来源:网络整理     时间:2016/8/5 15:25:40     关键词:

关于网友提出的“ 关于ADOQuery的onCalcFields计算字段的触发,很奇怪,大家都会碰到的,进来看看”问题疑问,本网通过在网上对“ 关于ADOQuery的onCalcFields计算字段的触发,很奇怪,大家都会碰到的,进来看看”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 关于ADOQuery的onCalcFields计算字段的触发,很奇怪,大家都会碰到的,进来看看
描述:

在Adoquery加了一个计算字段,在其onCalcFields事件里调用一个函数来计算这个计算字段。
然后,adoquery.open时,实际上整张表就一第记录,但我跟踪adoquery.open事件发生时,对其 onCalcFields这个事件竟然调用了四五次之多,MY GOD,我只有一条记录呀,又没有修改数据,只一个OPEN为什么会触发这么多次计算事件?
有人碰到过么?怎么避免呢?否则数据量大后岂不是会很慢???


解决方案1:

用DBGRid是没有这个现象的,你去cxGrid官网看看有无类似的tips?

解决方案2:

是cxGrid的关联问题

解决方案3:

经测试,是按记录数

解决方案4:

帮助文档说的很详细了呀,
截取部份:
OnCalcFields is triggered when:
A dataset is opened.
A dataset is put into dsEdit state.
A record is retrieved from a database.
When the AutoCalcFields property is true, OnCalcFields is also triggered when:
Focus moves from one visual control to another, or from one column to another is a data-aware grid control and modifications were made to the record.

解决方案5:

无代码无真相...
事出必有因,自己F3一步步运行看看,到底在那里又触发了

解决方案6:

触发次数不是按记录的笔数来的,它是按字段数*记录数来的。

解决方案7:

onCalcFields是在数据发生改变的时候都会触发的
open,last,next,locate,append,... adoquery.fields[0].asstring:=... 等等

解决方案8:

应该是数据集状态发生改变都会触发,比如关联字段值发生改变或post,应该就会触发它,open时,对字段的初始化应该也会触发


以上介绍了“ 关于ADOQuery的onCalcFields计算字段的触发,很奇怪,大家都会碰到的,进来看看”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3125045.html

相关图片

相关文章