程序,数据库运行完成后是否要释放所有的控件,数据库连接?(50分)

  • 主题发起人 zhaojingang
  • 开始时间
Z

zhaojingang

Unregistered / Unconfirmed
GUEST, unregistred user!
1、程序,数据库运行完成后是否要释放所有的控件,数据库连接?

应该怎样做?是不是用cloae 方法关掉主程序即可?
如果不做会不会一直占用内存,对数据库造成,潜在的危害?
请赐教!谢谢。
2、显方调用数据库事务处理,时机怎样掌握,具体怎样操作?
 
1、最好用完就释放;
2、事务的过程尽量短,把与事务无关的代码放在事务外。
 
控件是否需要显性释放,主要在于控件事如何生成的,以及Owner是什么。
如果控件不是显性释放,由Owner来释放(当Owner释放时,同时释放)但是可能Owner=nil
这时,可能要等到应用程序释放,才会释放,如果是服务器程序,当然属于内存泄漏了,
对于数据访问控件Close后就释放数据库连接资源了。
事务处理对于连接( 例如Adoconnection),
代码:
if not adoconnection.InTransaction then
begin
  adoconnection.begintrans;
try
  adoquery1....
  adoquery2....
  adoconnection.commit;
except
 adoconnection.rollback;
end;
end;
 
自己手工创建的控件和窗体,要自己释放
数据库连接用过后,close或者disconnect就行了
 
顶部