关于网友提出的“ 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