譬如:
.....
var 
 query:Tadoquery;
begin
 query:=Tadoquery.create(nil);
......
end;
哥们我,不知道如何能释放其query所占用的内存和相应的资源。
我用什么query.free或是query.destroy等都不好用,循环的释放也只见内存的使用不断的增长!嗨,求求大家了,帮帮忙!该如何释放呢?谢谢了!

解决方案 »

  1.   

    var 
     query:Tadoquery;
    begin
    try
     query:=Tadoquery.create(nil);
    ......
    Finally
    query.free;
    end;
      

  2.   

    var 
     query:Tadoquery;
    begin
    try
     query:=Tadoquery.create(nil);
    ......
    Finally
    query.free;
    end;
    end;
      

  3.   

    query.free的方法不灵!我是使用循环query的
    for i:=0 to 4
    begin
     try
      query:=Tadoquery.create(nil)
      .......
     finally
      query.free;
     end;
    end;
    上面只是程序执行的一部分,有的时候可能程序满足某个条件还会继续执行该段代码,从执行结果看,对象好像释放了,但内存还是不断的增长!嗨,继续帮帮哥们!谢了!谢了!等待..................
      

  4.   

    试试query.free之后,再query := nil
      

  5.   

    如果你使用query:=TQuery.creat(self)创建的话,
    就可以随着窗体释放而释放!
      

  6.   

    使用create(self)创建的会自动释放,但是create(nil)的不能自动释放
      

  7.   

    上面都帖子都犯了一个不大不小的错误就是将Create语句放在try里,
    最好的方法是var
      qry : TADOQuery;
    begin
      qry := TAdoQuery.Create(nil);
      qry.Connetion := yourConnection;
      wity qry do begin
        try
         ...
        finally
          Free;
        end;
      end;
    end;
      

  8.   

    我又做了个测试,发现用
    try
     query:=Tadoquery.create(nil);
    finally
     query.free;
    发现内存是渐渐的增长,但是CPU的使用率始终是100%,Why?
      

  9.   

    with query.create do
       try
        ....
       finally
        ...
     
       end;
      

  10.   

    使用全局变量,只调一次CREATE就可以解这个问题
      

  11.   

    问一个问题,就是你为什么要循环创建那么多的query呢,一个用完后close,再clear一下不行吗?