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

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小时不间断运行,占用的内存越来越大。怎么办?

我在该板块中也提问了类似问题,但是没有结果,今天做了具体的测试,恳请大家出招。
...全文
534 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
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小时不间断运行,占用的内存越来越大。

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

可是我在程序中申请的内存全部释放啦
加载更多回复(7)

1,178

社区成员

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

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