请大家帮忙解决读数据库内存暴涨的问题

su9989 2006-04-16 10:41:46
今天做了一个测试:
(1)TADOConnection、TADOQuery控件放在TDataModule中
(2)从数据库读出10万条数据
(3)在Form1中执行以下代码
AnsiString temp;
while(!DataModule1->ADOQuery1->Eof)
{
temp=DataModule1->ADOQuery1->FieldByName("field1")->AsString;
temp=DataModule1->ADOQuery1->FieldByName("field2")->AsString;
temp=DataModule1->ADOQuery1->FieldByName("field3")->AsString;
…………
…………
temp=DataModule1->ADOQuery1->FieldByName("field50")->AsString;
DataModule1->ADOQuery1->Next();
}
程序占用的内存暴涨到180MB

问题:
(1)程序运行完成后,需要手工释放ADOQuery1吗?如何释放?

(2)程序运行完成后,需要手工释放DataModule1吗?如何释放?

目前我的程序一运行就涨内存。由于程序需要24小时不间断运行,占用的内存越来越大。怎么办?

我在该板块中也提问了类似问题,但是没有结果,今天做了具体的测试,恳请大家出招。
...全文
472 27 点赞 打赏 收藏 举报
写回复
27 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bushy 2006-09-30
su9989(我本山人) ( ) 信誉:100 Blog 2006-4-18 15:07:31 得分: 0



关键是catch括号中放什么具体的数据库异常对象





catch(EDBEngineError &e)
  • 打赏
  • 举报
回复
hbqc_zh 2006-09-27
我这里好像没出现你这种情况啊,是不是你程序其它地方出了问题,把你的代码都贴出来,或者查一下病毒
  • 打赏
  • 举报
回复
yz20050510 2006-09-14
顶!!!!
  • 打赏
  • 举报
回复
yz20050510 2006-09-13
各位大哥,问题解决没有啊
我也遇到了,
想知道如何解决,急!!!
  • 打赏
  • 举报
回复
yangling18 2006-05-24
顶一下
  • 打赏
  • 举报
回复
su9989 2006-05-20
数据库是别人已经设定好的,我不能作修改

难道这是BCB存在的问题,这么多人碰到这种情况
  • 打赏
  • 举报
回复
roboteer 2006-05-17
我也顶一下这个问题。
我做的一个程序也是需要长时间运行,但是运行过程中也出现了占用内存不断增加,增加到一定时候程序就崩溃的问题,一直没有解决,正发愁怎么办呢,总不能总是用一断时间死机,重进,再用再死吧
  • 打赏
  • 举报
回复
slw3798 2006-05-09
在数据库中设置来限制内存大小就好了,运行一段时间达到设定大小就稳定下来了,我用的设置200m当然尽可能的大最好
  • 打赏
  • 举报
回复
pp616 2006-05-08
CodeGuard在ado那块好象有问题。
  • 打赏
  • 举报
回复
stevenjscn 2006-05-08
顶上来,我也想知道结果。
  • 打赏
  • 举报
回复
liskman 2006-05-04
用内存分析工具辅助分析一下吧,如BCB自带的CodeGuard,或是用AQTime、BoundCheck在运行时分析程序内存使用情况。
  • 打赏
  • 举报
回复
kittypizza 2006-05-03
╭───────────────╮
│╔╦╗╔╦╗╔╦╗╔╦╗╔╦╗│
│╠接╣╠分╣╠赶╣╠紧╣╠走╣│
│╚╩╝╚╩╝╚╩╝╚╩╝╚╩╝│
└─◎◎─────────◎◎─┘
  • 打赏
  • 举报
回复
stevenjscn 2006-05-02
我也遇到过类似的问题,至今也没解决。
  • 打赏
  • 举报
回复
stevenjscn 2006-05-02
顶。
  • 打赏
  • 举报
回复
su9989 2006-04-18
如何捕获ADOQuery1产生的异常

还有其它数据库控件操作时产生的异常,如何捕获
  • 打赏
  • 举报
回复
su9989 2006-04-18
关键是catch括号中放什么具体的数据库异常对象
  • 打赏
  • 举报
回复
caizhen2000_82 2006-04-18
try{}catch{}
  • 打赏
  • 举报
回复
netsys2 2006-04-17
很正常!ORACLE的服务就要占这么多。
  • 打赏
  • 举报
回复
su9989 2006-04-17
问题的关键是程序运行完后,占用的内存并没有释放,还始终占用180M内存

使用Oracle9i
  • 打赏
  • 举报
回复
su9989 2006-04-17
目前我的程序一运行就涨内存。

由于程序需要24小时不间断运行,占用的内存越来越大。

最终计算机的资源全部耗尽,无法继续运行

可是我在程序中申请的内存全部释放啦
  • 打赏
  • 举报
回复
加载更多回复
相关推荐
发帖
数据库及相关技术
加入

1163

社区成员

C++ Builder 数据库及相关技术
申请成为版主
帖子事件
创建了帖子
2006-04-16 10:41
社区公告
暂无公告