我在查询数据库中的数据时候,如果第一次查询不出来的话,在进行第2次查询的时候就出来了个错误提示:“BOF或EOF中有一个是真,或当前记录已被删除,所需的操作要求一个当前的记录。”
这是怎么回事呀?如果第一次查询出来的话就什么事情也没了。

解决方案 »

  1.   

    中间用到了一些ADOQuery1.RecordCount和ADOQuery1.Eof
      

  2.   

    不是循环查询,查询语句就一个,只是更换查询条件后再进行查询。
    sql1:='select * from employee where code='''+edit1.Text+''' and pass= '''+edit2.Text+'''';
               form1.ADOQuery1.Close;
               form1.ADOQuery1.Active:=false;
               form1.ADOQuery1.SQL.Clear;
               form1.ADOQuery1.SQL.Add(sql1);
               Showmessage(form1.ADOQuery1.SQL.text);
               form1.ADOQuery1.Open;
              showmessage(inttostr(i));
             if (form1.ADOQuery1.Eof) then
                begin
                    showmessage('帐号或密码错误!');
                    edit1.SetFocus;
                    edit1.Text:='';
                    edit2.Text:='';
                    //exit;
                end
             else
                begin
                    label3.Caption:='已登陆 ';
                    label3.Font.Color:=clblue;
                    edit1.Clear;
                    edit2.Text:='';
                    edit1.Enabled:=false;
                    edit2.Enabled:=false;
                    form1.Enabled:=true;
                    form1_action:=true;
                    form2.ToolButton2.Enabled:=true;
                    form2.ToolButton5.Enabled:=false;
                    form2_close:=true;
                    form2.Close;
                end;
      

  3.   


        if (form1.ADOQuery1.Eof) then
    改成:
        if form1.ADOQuery1.IsEmpty then
      

  4.   

    第二次查询之前Close一下数据集