delphi 动态创建的组件释放不了内存

proceduregetipl;varado:TADOQuery;beginado:=TADOQuery.Create(nil);ado.Connection:=Form... procedure getipl;
var
ado:TADOQuery;
begin
ado:=TADOQuery.Create(nil);
ado.Connection :=Form1.ADOConnection1;
Form1.ADOConnection1.Connected :=True;

.......
ado.free;
//freeandnil(ado); 这个也不行
end;
用try... finally最后释放也不真正释放,执行多次这个过程程序占用内存就一直增加

真是郁闷,怎么回事呢?
展开
 我来答
小天行者2008
2011-01-06
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
用finally释放代码没有问题的,把包含ADO的所有代码都放在try下面。不管try下面代码有没有出错或过早退出finally总会执行的。你在这段代码后再使用一下ADO,能用的话就是还没释放,不能用就是释放了。
建议你把省略的代码贴出来,要不看不出原委呵呵。
百度网友eaadc72c8
2011-01-06 · 超过66用户采纳过TA的回答
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:132万
展开全部
代码不完全,不过也算释放内存了阿。你把ado置空一下看看。
就是 ADO:= nil;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cd...e@gmail.com
2011-01-06
知道答主
回答量:22
采纳率:0%
帮助的人:8.9万
展开全部
ado.free释放内存没有问题,导致内存没有释放的是你省略部分的代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
surwe
2011-01-06 · TA获得超过631个赞
知道小有建树答主
回答量:1339
采纳率:44%
帮助的人:249万
展开全部
先close关闭查询
等与数据连接中断后,在释放所有资源
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cyril_hans
2011-01-07 · TA获得超过129个赞
知道答主
回答量:11
采纳率:0%
帮助的人:0
展开全部
代码不完全,不过也算释放内存了阿。你把ado置空一下看看。
就是 ADO:= nil; ...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式