Alternativ zum Umweg über den MemoryStream kann man sich auch gleich vom DataSet einen BlobStream geben lassen:
CreateBlobStream
Delphi-Quellcode:
var
stream: TStream;
JpgImage: TJpegImage;
begin
{ Image in BlobField schreiben }
stream := DataModule1.FDMemTable.CreateBlobStream(DataModule1.FDMemTableGraficBlob1, bmWrite);
try
ImLeft.Picture.Graphic.SaveToStream(stream);
finally
stream.Free;
end;
{ Image aus BlobField lesen }
JpgImage := TJpegImage.Create;
try
stream := DataModule1.FDMemTable.CreateBlobStream(DataModule1.FDMemTableGraficBlob1, bmRead);
try
JpgImage.LoadFromStream(Stream);
finally
stream.Free;
end;
...
finally
JpgImage.Free;
end;
end;
OT:
Zitat:
ich versuche verschachtelte Ressourcenschutzblöcke zu vermeiden
Das saubere Trennen der Schutzblöcke für jede Resource erleichtert allerdings das Refactoring ungemein.