我通过adoQuery查询数据库,当返回一个空时(一条记录也没查到),执行adoQuery.close方法便会报错:“bof 或 eof中有一个时真,或当前记录已被删除,所需的操作要求有一个当前记录”,怎么解决啊 ?

解决方案 »

  1.   

    什么版本,D5好象有这个BUG,需要打补丁!
      

  2.   

    procedure TfrmCty_Main.btnBrowseSearchClick(Sender: TObject);
      var sql:String;
    begin
    try
      begin
        frmSearch := TfrmSearch.create(self);
        frmSearch.Width := 580;
        frmSearch.Height := 330;
        frmSearch.Close;
        if  frmSearch.ShowModal = mrOK then
          begin
            adoQuerySelect.Close;
            adoQuerySelect.sql.Clear;
            sql := 'select  sd_cty.CTY_CDE, sd_cty.CTY_DESC , sd_cty.EFF_DTE,sd_ccy.CCY_CDE, sd_ccy.CCY_DESC from sd_cty,sd_ccy where sd_cty.CCY_OID =sd_ccy.CCY_OID ';
            adoQuerySelect.SQL.append(sql);        if frmSearch.edtCondition.Text <> '' then
              begin
                adoQuerySelect.SQL.add('and sd_cty.CTY_DESC like "'+frmSearch.edtCondition.Text+'"');
                //showMessage(adoQuerySelect.SQL.Text);
              end;        adoQuerySelect.Open;
            adoQuerySelect.Active := False;
            adoQuerySelect.Active := true;
          end;
        //frmLookUp.Free;
      end;finally
      begin
        //adoQuerySelect.Free;
        frmSearch.Free;
      end;
    end;end;