我想在ADODataSet为空时处理一些事情。但ADODATASET好像没有这个事件该怎么办。

解决方案 »

  1.   

    if Not ADODataSet.Active then
     ...
     ...
      

  2.   

    if ADODataSet.recordcount=0 then
      

  3.   

    事件你自己可以写,关键是你如何判断它是否为空,试用一下ADODataSet.isEmpty判断!
      

  4.   

    我的意思是在ADODataSet为空时,触发一个事件,处理一些代码。我现在就是找不到ADODataSet为空时的那个触发事件。不是判为ADODataset是否为空。怎么都不明白我意思呢
      

  5.   

    在下面的两个事件中写,可以满足你的要求。
    procedure TPOSDBForm.ADOQueryAfterOpen(DataSet: TDataSet);
    begin
      if ADOQuery.IsEmpty then
      //Do Something here 
    end;procedure TPOSDBForm.ADOQueryAfterScroll(DataSet: TDataSet);
    begin
      if ADOQuery.IsEmpty then
      //Do Something hereend;
      

  6.   

    procedure TPOSDBForm.ADOQueryAfterScroll(DataSet: TDataSet);
    begin
      if ADOQuery.IsEmpty then
      //Do Something hereend;
    不能触发此事件。
    procedure TPOSDBForm.ADOQueryAfterOpen(DataSet: TDataSet);
    begin
      if ADOQuery.IsEmpty then
      //Do Something here 
    end;
    可以触发此事件。
    谢谢楼主。但是第二种方法不行。
      

  7.   

    procedure TPOSDBForm.ADOQueryAfterScroll(DataSet: TDataSet);
    begin
      if ADOQuery.IsEmpty then
      //Do Something hereend;你把数据全部删除完,看看能否触发这个事件。  :)
    并不是每一步操作都会触发这两个事件,但是它们可以扑捉所有数据为空时的可能。明白我的意思么?