procedure Tbjzl.Button1Click(Sender: TObject);
begin
if ADOQuery1.recordcount>=0 then
 begin
  adoquery1.open;
adoquery1.sql.Clear;
adoquery1.sql.Text:=('select * from zidian');
adoquery1.append;
adoquery1.fieldbyname('quyu').AsString:=edit4.Text;
adoquery1.fieldbyname('id').AsString:=edit2.Text;
adoquery1.fieldbyname('name').AsString:=edit3.Text;
adoquery1.post;
end;end;
 老是提示adoquery1:cannot perform this operation on a close dataset.
但是我明明用了open 了.请教下

解决方案 »

  1.   

    procedure Tbjzl.Button1Click(Sender: TObject); 
    begin 
    if ADOQuery1.recordcount>=0 then 
    begin 
    adoquery1.close; //这里,你的错了
    adoquery1.sql.Clear; 
    adoquery1.sql.Text:=('select * from zidian'); 
    adoquery1.open;//这里你要打开才能新增。
    adoquery1.append; 
    adoquery1.fieldbyname('quyu').AsString:=edit4.Text; 
    adoquery1.fieldbyname('id').AsString:=edit2.Text; 
    adoquery1.fieldbyname('name').AsString:=edit3.Text; 
    adoquery1.post; 
    end; end; 
      

  2.   


    procedure Tbjzl.Button1Click(Sender: TObject); 
    begin 
     
    begin 
    adoquery1.close; //这里,你的错了 
    adoquery1.sql.Clear; 
    adoquery1.sql.Text:=('select * from zidian'); 
    adoquery1.open;//这里你要打开才能新增。 
    adoquery1.append; 
    adoquery1.fieldbyname('quyu').AsString:=edit4.Text; 
    adoquery1.fieldbyname('id').AsString:=edit2.Text; 
    adoquery1.fieldbyname('name').AsString:=edit3.Text; 
    adoquery1.post; 
    end;