我想把图片保存成bmp格式:
var
  bmp: TBitmap;
begin
  bmp:= TBitmap.Create;
  bmp.LoadFromFile('d:\示功图.bmp');
  with query3 do
  begin
    close;
    sql.Clear;
    sql.Add('insert into dbo.power_graphic (well_number,time_value,order_value,graphic) 
             values (:h1,:h2,:h3,:h4)');
    parambyname('h1').AsInteger:= 5;
    parambyname('h2').AsDateTime:= strtodatetime('2004-7-19 12:00:00');
    parambyname('h3').AsInteger:= 10;
    parambyname('h4').Assign(bmp);
    ExecSQL;
  end;
  bmp.Free;
运行后,用DBimage显示,图片上出现一片黑色,只有底部一部分图像正常,请问高手这是什么原因?另外,是不是DBiamge,QRDBimage只能显示bmp图像?

解决方案 »

  1.   

    bmp的很简单:adoquery1.fieldbyname('fielname').loadfromfile('c:\dd.bmp');
    jpg/jpeg:    用blob字段,
    bmpstream:Tmemorystream;
    bmpstream:=Tmemorystream.create;
    bmpstream.assageaa(form1.image1.picture.bitmap);
    bmpstream.position:=0;
    form1.adoquery1.close;
    form1.adoquery1.sql.clear;
    form1.adoquery1.sql.add('insert into customertalbe values(:p1,:p2)');
    form1.adoquery1.parameters.parambyname('p1').value:=trim(form1.edit1.text);
    form1.ADOQuery1.Parameters.ParamByName('p2').LoadFromStream(form1.bmpstream,ftBlob);
    try
    form1.adoquery1.execsql;
    except 
    end;
      

  2.   

    只能用ADO不能用BDE吗?
    我用BDE怎么有错误?!
      

  3.   

    将dbe中的blob值设大一些,我设的为10240没有问题
      

  4.   

    TBlobField(query1.FieldbyName('bmpfile')).LoadFromStream(ms)
      

  5.   

    流读取
    TBlobField(query1.FieldbyName('bmpfile')).LoadFromStream(ms)