我通过视频抓拍后,把图片转为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(编号)
;

解决方案 »

  1.   

    温度值在-10度……120度,用不同的颜色表示,分辨率为1度,
    如何处理,
    如果把TCOLOR的值均分好像不太好,至少-10度和10 读的颜色用肉眼分辨不出来!
      

  2.   

    直接打开相应的数据集,
    用TBolbField(ADODataSet1.FieldByName('image_field')).LoadFromStream存入数据,然后Post试试看
      

  3.   

    TO:hthunter(核桃)
       你好!
       我有试过这种方法,也一样会不断增加内存,另外,如果用这种方法它每次要OPEN表,速度会挺慢的