procedure TfrmInputBaseInfo.RefreshViewMain;
begin
  with ADODataSet1 do
  begin
    Close;
    CommandText := 'select * from tb_nBaseInfo '
                  +'where F_cRelation = '''+cmbxRelation.Text+''' '
                  +'order by F_nID';
    Open;
    RefreshViewDetail;
  end;
end;
上面代码执行一次可以,但再执行时就报错:
Either BOF or EOF is True,or the current record has been deleted,
requested operation requires a current record.
请问怎么解决?

解决方案 »

  1.   

    Delphi的升级补丁包安装了吗?RefreshViewDetail里面写了什么?
      

  2.   

    procedure TfrmInputBaseInfo.RefreshViewMain;
    begin
      with ADODataSet1 do
      begin
        Close;
        sql.clear;
        CommandText := 'select * from tb_nBaseInfo '
                      +'where F_cRelation = '''+cmbxRelation.Text+''' '
                      +'order by F_nID';
        Open;
        RefreshViewDetail;
      end;
    end;
      

  3.   

    procedure TfrmInputBaseInfo.RefreshViewMain;
    begin
      with ADODataSet1 do
      begin
        Close;
        CommandText := 'select * from tb_nBaseInfo '
                      +'where F_cRelation = '''+cmbxRelation.Text+''' '
                      +'order by F_nID';
        Open;
        RefreshViewDetail;
        Close; //呢?
      end;
    end;
      

  4.   

    很可能是ADO没有打补丁,这里下载:
    ADO Update1
    ftp://ftpc.inprise.com/pub/delphi/devsupport/updates/adoexpress/D5ADOUpgrade.exe
    ADO Update2
    ftp://ftpc.inprise.com/pub/delphi/devsupport/updates/adoexpress/d5adoupdate2.exe
      

  5.   

    RefreshViewDetail;也是一个类似的明细数据刷新过程。to sysu(死树): 我试试!