我采用的是 D6+ado+access2003,结果出现了内存的泄露,大家帮忙看一下代码如下,就是简单的向数据库中填充图片
adoquery是直接拖上去的控件前面的连接部分不再贴出,只贴出有问题的部分
jp为前面定义的TJpegImage类型,存放图片
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('insert into LS_Image (LS_ImageData,id) Values(:ImageData,'''+id+''')');
adoquery1.parameters[0].assign(jp);
adoquery2.execsql;
jp.free;此段代码在Timer中,interval为1000ms,即每秒插入一张图片,从任务管理器中发现出现了内存泄露但是该段代码向sql server中插入数据时没有出现泄露情况,请各位大虾帮忙看一下。多谢大家了
adoquery是直接拖上去的控件前面的连接部分不再贴出,只贴出有问题的部分
jp为前面定义的TJpegImage类型,存放图片
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('insert into LS_Image (LS_ImageData,id) Values(:ImageData,'''+id+''')');
adoquery1.parameters[0].assign(jp);
adoquery2.execsql;
jp.free;此段代码在Timer中,interval为1000ms,即每秒插入一张图片,从任务管理器中发现出现了内存泄露但是该段代码向sql server中插入数据时没有出现泄露情况,请各位大虾帮忙看一下。多谢大家了
解决方案 »
- fastreport 空白行补充及分页问题
- 有没有朋友遇到过哟,我的DELPHI7 编释从此变得像蜗牛了。怪!!!
- winform 打开
- 打印问题,十万火急,高分求救!!!分不够再加!
- APRO中传真控件的使用?
- 关于在Form某个区域上调用Canvas画了一些东西后,想刷新这个区域的问题?
- 在打印机默认值中设好的纸型和方向,在QuickReport预览的打印机设置中,为什么方向被改变了?
- 在com+对象中使用ado组建访问数据库时碰到的事务问题。
- 动态产生的button,为什么看不到?
- 哪位高手知道怎样把信息隐藏在Jpg格式的图片中?
- 有关提取数字画图(TCHART)的问题
- 网络逐行读取文本的问题,(请skycoffee领分)
ACCESS是文件数据库,它占用的资源是算在调用它的进程里的,你试试断开连接,看内存是否回落了.
不是 adoquery2.execsql;恩我的测试程序 project1 在插入了2000张图片之后,project1 占用内存增加了 24764K
断开连接后,内存只回落了20K左右,基本上算是没有回落吧
我这么做,为什么提示 Cannot assign a TJPEGImage to a TParameter.
我该怎么做啊?
---------------------------
var
jp:TJPEGImage;
id:string;
begin
id:= FormatDateTime('ddmmss',now());
jp:= TJPEGImage.Create;
jp.LoadFromFile('C:\a.jpg');
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('insert into jp (jpdata,id) Values(:ImageData,'''+id+''')');
adoquery1.parameters[0].assign(jp);
adoquery1.execsql;
jp.free;
马上回复原来的内存占用大小但那是由于你将程序最小化之后,系统将你的进程占用的内存转移到了“硬盘”上,就是你的虚拟内存上了,所以内存占用会大大下降。但我的泄漏依然就没人尝试运行我的代码试试看吗??看看你们是不是也会出现这种情况如果可以,我把代码发到各位邮箱里也可以,这里不让上传附件,郁闷啊