加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi加载图像在sql数据库中保存为blob

发布时间:2020-12-15 10:06:09 所属栏目:大数据 来源:网络整理
导读:我正在尝试从以前保存在sql数据库中的图像blob加载一个Image控件.我已经测试了很多方法,但我无法使其工作.图像blob保存为: qry.SQL.Text := 'update tbl set pic = :blobVal where id = :idVal';qry.Parameters.ParamByName('blobVal').LoadFromFile('c:sa
我正在尝试从以前保存在sql数据库中的图像blob加载一个Image控件.我已经测试了很多方法,但我无法使其工作.图像blob保存为:
qry.SQL.Text := 'update tbl set pic = :blobVal where id = :idVal';
qry.Parameters.ParamByName('blobVal').LoadFromFile('c:sample.jpg',ftBlob);
qry.Parameters.ParamByName('idVal').Value := 1;

有什么建议吗?

解决方法

这里有很多关于将图像加载到数据库的步骤,但我找不到一个带有更新或插入参数的图像.

您可以简单地为参数指定图形对象.
如果要存储不同的图形类型,则应添加列
保持信息应该存储哪种图形(例如jpeg,bmp,png).
如果要从数据库中检索图片,则能够创建所需的TGraphic类后代.

uses jpeg,pngimage;

type
 TitTYPES=(itJPG,itPNG,itBMP);

procedure TDEMO.Button1Click(Sender: TObject);
var
 jp:TJpegimage;
 g:TGraphic;
begin

  jp:=TJpegimage.Create;
  try
    ads.Close;
    jp.LoadFromFile('C:Bilder1PIC.jpg');
    ads.SQL.Text := 'Insert into IMGBlob (ID,Blob,typ) Values (:ID,:BLOB,:typ)';
    ads.Parameters[0].Value := 1;
    ads.Parameters[1].Assign(jp);
    ads.Parameters[2].Value := itJPG;
    ads.ExecSQL;

    ads.SQL.Text := 'Select * from IMGBlob where ID=:ID';
    ads.Parameters[0].Value := 1;
    ads.Open;
    try
      case TitTYPES(ads.FieldByName('typ').AsInteger) of
           itJPG: g:=TJpegimage.Create;
           itPNG: g:=TPNGImage.Create;
           itBMP: g:=TBitmap.Create;
      end;
    g.Assign(ads.FieldByName('Blob'));
    Image1.Picture.Assign(g);
    finally
      g.Free;
    end;
  finally
    jp.Free;
  end;
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读