Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TBlobField.LoadFromStream (https://www.delphipraxis.net/194565-tblobfield-loadfromstream.html)

ATS3788 7. Dez 2017 15:37

Datenbank: Firebird • Version: 3.1 • Zugriff über: firedac

TBlobField.LoadFromStream
 
Hallo
Kann mir jemand mir Efahrung erklären was in der folgenden
Prozedur geschieht ?

Ich übergebe einen Stream an LStream der vorher Created wird

Der Stream wird nach LStream übergeben und dann sofort destroyed.
Wo sind jetzt die blöden Daten von dem Blob?

Hintergrund. Ich möchte das gerne ein TDBImage so überschreiben
um auch JPeg's und andere Datenformate zu speichern und auszugeben.


Delphi-Quellcode:
procedure TBlobField.LoadFromStream(Stream: TStream);
var
  LStream: TStream;
begin
  LStream := DataSet.CreateBlobStream(Self, bmWrite);
  try
    LStream.CopyFrom(Stream, 0);
  finally
    LStream.Free;
  end;
end;

mkinzler 7. Dez 2017 15:42

AW: TBlobField.LoadFromStream
 
Es wird in die TBlobField-Instanz geladen

Neutral General 7. Dez 2017 15:45

AW: TBlobField.LoadFromStream
 
Zitat:

Zitat von mkinzler (Beitrag 1388231)
Es wird in die TBlobField-Instanz geladen

Aber wie und wo?
Wenn ich mir das so anschaue bin ich auch verwirrt.
Die Daten aus dem übergeben Stream werden in einen Blobstream kopiert der dann aber direkt wieder freigegeben wird (?!)

mkinzler 7. Dez 2017 15:52

AW: TBlobField.LoadFromStream
 
self ist die Instanz, in die geladen wird.

http://docwiki.embarcadero.com/Libra...eateBlobStream

Uwe Raabe 7. Dez 2017 16:38

AW: TBlobField.LoadFromStream
 
LStream ist halt ein TBlobStream, der seine Daten in das beim Create angegebene BlobFeld schreibt (bzw. aus dem liest). Wäre LStream ein TFileStream würden die Daten eben auf der Platte landen. Da wundert sich ja auch niemand, daß nach dem CopyFrom der Stream einfach freigegeben wird.

ATS3788 10. Dez 2017 06:40

AW: TBlobField.LoadFromStream
 
Danke für die Antworten:lol:
Ich wünsche euch eine schöne Woche


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz