快速向SQL数据库中读、写图片一例(Delphi篇)

本文展示了如何在Delphi应用中使用TMemoryStream和ADOQuery组件,实现将图片保存到SQL数据库以及从数据库读取图片的功能。通过Button1Click事件插入图片,Button2Click事件读取并显示图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


procedure TForm1.Button1Click(Sender: TObject);               //插入圖片過程
var
  testStream:TMemoryStream;
begin
  
try
    testStream :
= TMemoryStream.Create;                                 //創建內存流
    Image1.Picture.Graphic.SaveToStream(testStream);  //將圖片保存至內存流中
    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoQuery1.SQL.Add(
'Insert into test (id,photo) values (:id,:photo)'); //進行插入操作
    adoquery1.Parameters.ParamByName('id').Value := '003';
    adoQuery1.Parameters.ParamByName(
'photo').LoadFromStream(testStream,ftBlob);  //讀取保存的內存圖
    adoquery1.ExecSQL;
  
finally
    testStream.Free;                                                                     
//釋放內存流
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);               
//讀取圖片過程
var
  mStream:TMemoryStream;
  JpgFile:TjpegImage;
begin
  
if not ADOQuery1.FieldByName('photo').IsNull then begin ;
    mStream:
=TMemoryStream.Create ;
    JpgFile:
=TjpegImage.Create ;
    TBlobField(ADOQuery1.FieldByName(
'photo')).SaveToStream(mStream);  //顯示的轉換為BlobFiled並保存至內存流
    mStream.Position :=0;
    jpgfile.LoadFromStream(MStream);
    image2.Picture.Assign(JpgFile);
 end
 
else begin
   image2.Picture :
=nil;
 end;
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值