关闭数据库的时机?(100分)

  • 主题发起人 主题发起人 wxz521
  • 开始时间 开始时间
W

wxz521

Unregistered / Unconfirmed
GUEST, unregistred user!
打个比方:
有Main,Inert,Update,List 等几个unit,他们都有数据库的连接。现在
我在MainForm上打开ListForm(进行数据浏览),选择一个记录进行修改(这时
打开了UpdateForm),修改完后,我关闭updateForm,回到ListForm,这时我又
想进行记录添加,我打开了InsertForm···
在以上的多项操作中,我一般是使用以下格式进行调用:
ListForm := TListForm.Create(self);
ListForm.ShowModal;
ListForm.Free;
在每个表单的关闭按钮的Click事件中有 Close;

现在我的问题是:我不知道在各个单元相互调用的情况下,什么时候进行资源
的释放最合适,特别是数据库资源。因为自从我开始编写某个程序,经常会有
内存不足的情况出现,我想是资源没有释放的原因,可见仅用上面的步骤是不
够的。
而且如果我在每一个调用的地方都使用以上语句,就会有出错的可能,因
为有重复释放的情况。
我想,大侠们肯定自有一套关于这方面的编程习惯的好方法,不会漏掉释
放资源也不会引起冲突的。
希望能指点一下。(说得这么罗嗦不清,希望大家能理解)
 
if ListForm <> nil then
begin
ListForm := TListForm.Create(self);
ListForm.ShowModal;
ListForm.Free;
ListForm := nil;
end;
 
用完就释放,越早愈好
 
一般我做的时候遵循这么几个原则:
一、把经常用到的函数、过程以及象前面所说的数据连接放在一个公共模块中,
这个模块的生命周期基本上是这个系统的运行时间。也就是说不用考虑手工释放的问题。
二、把一些不是经常用的东西,采用随用随调的原则,用完即释放的原则。
三、对于一些只有一个地方需调用的东西,他的生命周期应该是用完几释放,某些情况
下也可以考虑让他的生命周期等同与调用他的哪个模块的生命周期。
说得有点乱,不知是否理解。
 
一句话,用到就打开,用完就释放.
 
刃血兄所言极是
 
数据库不应一直打开着, 应该每次使用时再打开, 用完就关闭。
这样对保互数据有好处。
 
多人接受答案了。
 
后退
顶部