用delphi7。
我想用一个Label适时反映adodataset的recordcount,一开始我在datasource的ondatachange事件写:
if adods.State = dsbrowse then
begin
  Label.Text := '  共 ' + IntToStr(adods.RecordCount) + ' 条记录';
end;
后来发现在dbgrid中每移动一条记录,都要触发这个事件,觉得太频繁,请问大家写在什么事件里好?有没有类似onRecordCountChange之类的事件?

解决方案 »

  1.   


    delete后能更新?我试试再说。
      

  2.   


    不行,delete后不能更新数量。
      

  3.   

    那就delete后再更新下:
    Label.Text := '  共 ' + IntToStr(adods.RecordCount) + ' 条记录'; 
      

  4.   

    所以一开始写在datasource的ondatachange事件里啊一下子就处理了,可是在这个事件里触发的情况太多。
    分散开来,有点太麻烦,一不小心有情况就忘了。
      

  5.   

    考虑在AdoDataSet的AfterPoset事件、DataSetChange事件中更新count,不要在DBGrid中更新。
    procedure TForm1.ADODataSet1AfterPost(DataSet: TDataSet);
    begin
    end;