下面这段代码,为什么加上adoquery1.Active:=false;adoquery1.Active:=true;这两句代码,与不加效果是一样的?是不是close和open已将这两句语句的功能取代?procedure TForm1.Button3Click(Sender: TObject);
begin
//adoquery1.Active:=false;
with adoquery1 do begin
close;
sql.Clear;
sql.Add('select * from dbo.工厂日历');
open;
//adoquery1.Active:=true;
end;
end;

解决方案 »

  1.   


    既然有close和open,那为什么还要有adoquery1.Active:=false;和adoquery1.Active:=true;
    不是完全可以用close和open代替了么,还简便。adoquery1.Active:=false;和adoquery1.Active:=true;是在什么情况下使用?
      

  2.   

    open方法,实际上就是设置Active:=true;
    同理,close方法是设置Active:=false;任意用一种就行了
      

  3.   

    数据集对象的Open方法,其实就是将Active属性设为true,而Close方法,则是将Active属性设为false,那么为什么还要公布Active这个属性?因为用这个属性可以判断当前数据集是否打开,如此而已。
      

  4.   

    你可以看一下VCL的代码,啥都明白了