Delphi將Image存入MySQL資料庫

存入

var astream : Tmemorystream;
begin
AStream := TMemoryStream.Create;
  try
    Image1.Picture.Graphic.SaveToStream(AStream);
    AStream.Position := 0;
    if adoquery1.Active then
    begin
      adoquery1.Edit;
TBlobField(adoquery1.FieldByName('File')).LoadFromStream(AStream);
      adoquery1.Post;
    end;
  finally
    AStream.Free;
  end;

取出

var
Ms:TStringStream;
jpg1:Tjpegimage;
begin
   Ms := TStringStream.Create('');
   jpg1 := Tjpegimage.create;
  try
    if adoquery1.Active then
    begin
      TBlobField(adoquery1.FieldByName('File')).SaveToStream(Ms);
      Ms.Position := 0;
      jpg1.LoadFromStream(ms);
      image1.Picture.Bitmap.Assign(jpg1);      
    end;
  finally
    ms.Free;
    jpg1.Free;
  end;

注意,如果出現Got a packet bigger than ‘max_allowed_packet’ bytes
在My.ini加上
max_allowed_packet = 10M

我要留言

留言

關於 林壽山

林壽山 軟體公司專案經理,第三方支付設計,金流設計,行動支付設計,支付寶,微信,街口支付,信用卡機,擅長PHP網頁設計(CodeIgniter、Laravel)框架、Delphi程式設計、資料庫設計、C# WinForm/WebForm程式設計
本篇發表於 Delphi 並標籤為 , , , 。將永久鏈結加入書籤。

發表迴響

你的電子郵件位址並不會被公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料