Einzelnen Beitrag anzeigen

Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#1

Image.Picture.SaveToStream in ein Datenbankfeld

  Alt 3. Feb 2021, 01:58
Huhu.

Mit folgendem Code versuche ich ein Stream aus einem TImage in ein Graphic - Feld einer Datenbank zu schreiben. Es scjeint, als wäre der Stream leer, da beim Lesen des Feldes immer eine Fehlermeldung erzeugt wird.

Code für das Schreiben:
Delphi-Quellcode:
var
  BlobStream: TStream;
  PictureStream: TStream;
begin
    PictureStream := TMemoryStream.Create;
    Image1.Picture.SaveToStream(PictureStream);
    BlobStream :Table1.CreateBlobStream(Table1.FieldByName('Thumbnail'), bmWrite);
    BlobStream.Write(PictureStream, PictureStream.SIZE);
    BlobStream.Free;
    PictureStream.Free;
end;
Code für das Auslesen:
Delphi-Quellcode:
var
  JpegImage: TJPEGImage;
  BlobStream: TStream;
begin
  BlobStream := Table1.CreateBlobStream(Table1.FieldByName('Thumbnail'), bmRead);
  JpegImage := TJPEGImage.Create;
  JpegImage.LoadFromStream(BlobStream); // <--- Hier wird eine Exception ausgelöst, BlobStrem ist () (leer?)
  Image1.Picture.Assign(JpegImage);
  Image1.Visible := True;
  JpegImage.Free;
  BlobStream.Free;
end;
Ist der Fehler beim Schreiben oder beim Lesen zu suchen?

LG Mathias
Mathias
  Mit Zitat antworten Zitat