我用Dbimage连接数据库的Image(Access里看到数据类型是Ole对像,在SQL数据库里看到的是数据类型是Image长度为16,在SQL数据库字段里看到的内容是<Binary>)字段请问如何才能读出这里面的数据并显示图形

解决方案 »

  1.   

    可能是你的二进制字段并不是BMP数据,将报上述错误。
    你可以用一个TMemoryStream先把数据读进来,用ReadBuffer,判断一个头两个字节是不是BM。(JPEG是$D8FF)
      

  2.   

    用Timage可以显示出来,各种类型的图片都能显示。我做过这样的东西,不是很难的
      

  3.   

    用流显示就行了
    var
    ms:TStringStream;
    bmp:Tbitmap;
    AppPath:string;
    begin
      try
      AppPath := ExtractFilePath(Application.ExeName);
      if fileexists(AppPath+'temp.bmp') then
        deletefile(AppPath+'temp.bmp');
      ms:=TstringStream.Create('');
      TBlobField(adsmasterdata.FieldByName('datum_towner')).SaveToStream(ms);
      ms.Position :=0;
      bmp := tbitmap.Create;
      bmp.LoadFromStream(ms);
      Image.Picture.Assign(bmp);
      except
      end;