delphi数据库存储图片
更新:HHH   时间:2023-1-7


--存 

str_sql := 'update photo set photo = :photo ';
  str_sql := str_sql + ' where sex = ''女''';
  with qry_for_show do
  begin
    Close;
    SQL.Clear;
    SQL.Add(str_sql);
    Parameters.ParamByName('photo').Assign(img2.Picture.Graphic);
    ExecSQL;
  end;


--读

procedure Tfrmpicsave.BitBtn1Click(Sender: TObject);
var
  Stream:TMemoryStream;
  Jpg:TdxPNGImage;
begin
  qry_for_show.Close;
  qry_for_show.SQL.Text:='SELECT * FROM HLDJPHOTO';   // 查询图片
  qry_for_show.Open;
  if not qry_for_show.FieldByName('photo').IsNull then
  begin
    Stream:=TMemoryStream.Create ;
    Jpg:=TdxPNGImage.Create ;
    TBlobField(qry_for_show.FieldByName('photo')).SaveToStream(Stream);    // 显示的转换为BlobField并保存到内存流
        TBlobField(qry_for_show.FieldByName('photo')).SaveToFile(ExtractFilePath(Application.ExeName) + 'www');    // 显示的转换为BlobField并保存到内存流
    Stream.Position :=0;

    jpg.LoadFromStream(Stream);    // 加载图片

    p_w_picpath2.Picture.Assign(Jpg);
  end
  else
  begin
    p_w_picpath2.Picture :=nil;
  end;

    Stream.Free;

    Jpg.Free;
end;

返回数据库教程...