Delphi内存释放问题。

linktoppeng 2007-06-06 04:28:10
小弟做了一个程序。窗体加载时创建ADOQuery,并且取得数据。窗体关闭时释放ADOQuery。但是客户端的内存还是不会释放。而且随着不断的加载数据。内存一直上升。请问怎么解决??
我是用ADOQuery.Free做的。
...全文
978 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
constantine 2007-06-15
  • 打赏
  • 举报
回复
Frmst.Free;你在Close里面释放窗体自己干什么
cnhxjtoa 2007-06-15
  • 打赏
  • 举报
回复
close
free
都不好用.
procedure TFrmst.FormClose(Sender: TObject; var Action: TCloseAction);
begin

AdoQuery1.Close;
AdoQuery2.Close;
//try
//ADOQUery1.Free;
// AdoQuery2.Free;
Frmst.Free;
Frmst:=nil;
// except
// exit;
// end;
end;
都将会出错
如果没有任何代码还不会报错,真是晕呀
lcc_2004 2007-06-13
  • 打赏
  • 举报
回复
运行时创建用close就可以了!
只有自己创建时用free!
brightyang 2007-06-12
  • 打赏
  • 举报
回复
如果是运行时创建的话delphi会自动管理内存,只用close就行了
imho888 2007-06-12
  • 打赏
  • 举报
回复
freeandnil(ADOQuery1)
FCU 2007-06-12
  • 打赏
  • 举报
回复
支持楼上的!

自己创建的用FREE,控件的话CLOSE就OK了,因为你还要用嘛!

内存泄露在你手动创建的QUERY上找找问题,看看是不是忘了释放了.
ztenv 2007-06-12
  • 打赏
  • 举报
回复
如果不是自己在程序运行时创建的ADOQuery那么请不要free而只用close
supercc 2007-06-12
  • 打赏
  • 举报
回复
up
rong451 2007-06-11
  • 打赏
  • 举报
回复
只要close就释放了,ADOQuery1就不管事了啊,其他原因吧
cnhxjtoa 2007-06-11
  • 打赏
  • 举报
回复
if ADOQuery1.Active=true then begin
ADOQuery1.Close;
ADOQuery1.Free;
end;
xixuemao 2007-06-07
  • 打赏
  • 举报
回复
有没有一些循环处理?
yi10000 2007-06-07
  • 打赏
  • 举报
回复
肯定不是ADOQuery没释放内存,是因为你程序做了什么处理,导致内存泄露,你可以先让程序简单化,一步一步实验,当然也可以通过内存检查工具检查
linktoppeng 2007-06-06
  • 打赏
  • 举报
回复
怎么看?我是想问在代码中怎么解决
ly_liuyang 2007-06-06
  • 打赏
  • 举报
回复
用内存泄漏工具检查看看

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧