这样存储图片后内存释放不干净?
我通过视频抓拍后,把图片转为JPG格式存入数据库,发现每存一次,内存总会增加少量,请高手看看,这是为什么?
procedure Tfrm_parkvmain.pr_savejpgtodb(i_recno:integer);
var
query:Tadoquery;
m_jpegstream:Tmemorystream;
begin
query:=Tadoquery.Create(nil);
m_JpegStream := TMemoryStream.Create;
try
query.ConnectionString:=vgs_connstr;//vgs_connstr数据库连接字符串
ima_in.Picture.Graphic.SaveToStream(m_jpegstream);
query.SQL.Clear;
query.SQL.Add('exec pr_catchimage :image_in');
query.Parameters.ParamByName('image_in').LoadFromStream (m_JpegStream,ftblob);
try
query.Open;
vgr_passrecord[i_recno-1].photoID:=query.fieldbyname('photoid').asinteger;
except
end;
finally
query.Close;
query.Free;
m_jpegstream.Free;
end;
end;
//以下为数据库存储过程
CREATE procedure pr_catchimage --车辆入场保存图片
@image_in image
as
insert into t_carphoto values(@image_in) --插入图片
select max(photoid) as photoid from t_carphoto --得出当前插入记录的PHOTOID(编号)
;
问题点数:0、回复次数:4Top
1 楼nclgh(南飞)回复于 2004-01-03 12:41:43 得分 0
没人顶?Top
2 楼shgye121212(来自山核桃原产地的代码编写器)回复于 2004-01-05 10:48:41 得分 0
温度值在-10度……120度,用不同的颜色表示,分辨率为1度,
如何处理,
如果把TCOLOR的值均分好像不太好,至少-10度和10 读的颜色用肉眼分辨不出来!Top
3 楼hthunter(茫茫然时光飞逝)回复于 2004-01-05 11:26:05 得分 0
直接打开相应的数据集,
用TBolbField(ADODataSet1.FieldByName('image_field')).LoadFromStream存入数据,然后Post试试看Top
4 楼nclgh(南飞)回复于 2004-01-06 11:58:07 得分 0
TO:hthunter(核桃)
你好!
我有试过这种方法,也一样会不断增加内存,另外,如果用这种方法它每次要OPEN表,速度会挺慢的Top




