您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> TADOQuery 释放句柄问题 急!

TADOQuery 释放句柄问题 急!

来源:网络整理     时间:2016/8/9 13:56:16     关键词:

关于网友提出的“ TADOQuery 释放句柄问题 急!”问题疑问,本网通过在网上对“ TADOQuery 释放句柄问题 急!”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: TADOQuery 释放句柄问题 急!
描述:

各位 TADOQuery怎么释放句柄?
EG:
procedure TForm1.Button1Click(Sender: TObject);
var
  MyAdo : TADOQuery;
begin
  try
    MyAdo := TADOQuery.Create(nil);
    MyAdo.ConnectionString := 
    'Provider=OraOLEDB.Oracle.1;Password= pass;Persist Security Info=True;User ID= user ;Data Source= dbtest';
    MyAdo.SQL.Text := 'select * form db1 where id =1'; //到这里就看到产程有句柄了
    MyAdo.Open;
    Appliaction.MessageBox(MyAdo.FieldByName('Name').AsString,'查到的姓名',mb_ok);
    MyAdo.Close;
    MyAdo.Free; //或者用FreeAndNil(MyAdo); 一样释放不掉句柄
  except
    MyAdo.Free;
  end;
end;
这里产生的句柄到底怎么释放呀??? 在Windows XP 的任务管理器中看句柄 调用一次 句柄就加一次,不下降,内存是释放了,但是就句柄不释放。
请问高人们,到底怎么释放? 
如果不释放的话 是不是会有问题??
一般句柄到多少会出问题?????


解决方案1:

知道的也就是freeandnil了。。。。。。。。。

解决方案2:

严重关注

解决方案3:

FreeAndNil(obj); 应该可以才对,
我用Tadoquery打开mdb,FreeAndNil(obj); 后mdb文件就关了

解决方案4:

这得问比尔·盖茨老先生为啥设计成这样啦

解决方案5:

试试release

解决方案6:

free就够了,

解决方案7:

try
  MyAdo := TADOQuery.Create(nil);
  ....
finally
  MyAdo.free;
end;

解决方案8:

try 
      MyAdo := TADOQuery.Create(nil);
finally 
      MyAdo.free             
      MyAdo.Handle:=0;

解决方案9:

Appliaction.MessageBox(MyAdo.FieldByName('Name').AsString,'查到的姓名',mb_ok);
MyAdo.Close;
MyAdo.Free; //或者用FreeAndNil(MyAdo); 一样释放不掉句柄
MyAdo :=nil ;  

解决方案10:

有句柄么?

解决方案11:

try
   ...
  MyAdo.Open;
  ...
  MyAdo.Close;
finally
  MyAdo.Free;
  MyAdo := nil;
end;

解决方案12:

可否使用其它释放内存的软件配合使用,可以定期使用。这样,应该解决你的问题。关键是要编写一个小程序,或在你的程序中编写代码,定时调用该释放内存的软件. 

解决方案13:

我连firebird的话,句柄是能够正常释放的

解决方案14:

最好用
try
 ...
fianlly
 FreeAndNil(obj);
end;


以上介绍了“ TADOQuery 释放句柄问题 急!”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3157956.html

相关图片

相关文章