有关ADODataSet的onFilterRecord事件的触发次数(50分)

  • 主题发起人 主题发起人 vincent+
  • 开始时间 开始时间
V

vincent+

Unregistered / Unconfirmed
GUEST, unregistred user!
D5,ADO,Access

我的程序代码如下:

var i:integer;
sFindStr:string;

ADODataSet.onFilterRecord事件
var sSourceStr:string;
begin
sSourceStr:=ADODataSet.FieldByName('DESC').asstring;
if Pos(sFindStr,sSourceStr) then
........
inc(i);
end;

问题:表中有10条记录,初始i为1,onFilterRecord事件触发后检查I值,
有时为1,有时为5,有时为10,为什么,不是每条记录都触发一次的么?
 
为什么没人回答?
 
你把inc(i);提到第一句先试试
 
不一样么?

inc(i)包含在if句子里面的呵!
 
to :vincent+,
张剑波 的意思是把inc(i)写再 if 前!
I不一样可能是if被满足的次数不一样
 
你是想以此代码统计筛选的人数吗?
别费力气了,这个没用。以前我试着写过同样的代码。
统计下来的数字总是不确定的,至今不知是何原因,可能是delphi的一个bug。
你可以用sql语句来统计。
 
onFilterRecord事件在需要数据过滤时触发,一般情况在数据移动了指针,或读新数据时执行,
因此它不是所有记录都产生该事件.
 
后退
顶部