如何在PostgreSQL中使用 Delphi 东京持久化图像

xj3cbfub  于 2024-01-07  发布在  PostgreSQL
关注(0)|答案(1)|浏览(335)

使用以下SQL:

  1. INSERT INTO team (name, photo) VALUES (:name, :photo);

字符串
我已经在TImage组件中加载了一个图像,并在“people”表中加载了一个Bytea字段。
有人能帮我吗?

jvidinwx

jvidinwx1#

将图像插入Postgres BYTEA字段的代码示例如下:

  1. procedure TForm1.SaveBlobClick(Sender: TObject);
  2. var
  3. stream: TMemoryStream;//TBlobStream TStream
  4. format: integer;
  5. begin
  6. with query1 do
  7. begin
  8. sql.Clear;
  9. stream := TMemoryStream.Create;
  10. sql.Add('INSERT INTO tmp_blob (image) VALUES (:blob);');
  11. TmpJpg.SaveToStream(stream);
  12. ParamByName('blob').LoadFromStream(stream, ftGraphic );
  13. ExecSql;
  14. stream.Free;
  15. end;
  16. end;

字符串
读取图像:

  1. procedure TForm1.BLoadBlobClick(Sender: TObject);
  2. var
  3. stream: TStream;//TMemoryStream
  4. g : TGraphic;
  5. begin
  6. with query1 do
  7. begin
  8. close;
  9. sql.clear;
  10. sql.add('SELECT * FROM tmp_blob LIMIT 1' );
  11. Open;
  12. Stream := query1.CreateBlobStream(fieldByName('image') , bmRead );
  13. tmpJpg.LoadFromStream(stream);
  14. image1.Picture.Bitmap := tmpJpg.toBitmap;
  15. close;
  16. Stream.Free;
  17. end;
  18. end;


注意:我使用SynGdiPlus库中的TJpegImage组件来加载和保存映像

展开查看全部

相关问题