Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   BlobStream in StringGrid speichern (https://www.delphipraxis.net/210528-blobstream-stringgrid-speichern.html)

Poelser 23. Mai 2022 10:29

AW: BlobStream in StringGrid speichern
 
Ohne jetzt genauer in die Materie einzutauchen, ist mein erster Gedanke Length(AktData.JpegArray). SizeOf ist doch nur die Größe des Pointers, du brauchst hier aber doch die Länge der Daten.

Smiley 23. Mai 2022 10:43

AW: BlobStream in StringGrid speichern
 
Muss da vielleicht sowas wie
BlobStream.ReadBuffer(AktData.JpegArray,BlobStream .Size);
rein ?

Streams sind mir noch völlig fremd daher so merkwürdige Fragen.

himitsu 23. Mai 2022 11:30

AW: BlobStream in StringGrid speichern
 
Delphi-Quellcode:
BlobStream.WriteBuffer(AktData.JpegArray, SizeOf(AktData.JpegArray));


Aber NEIN.

So wird bloß die Array-Variable gespeichert.

Wäre es ein dynmaisches Array, dann bloß der Array-Zeiger
und bei einem statischen Array die Felder, also bloß die Objekt-Zeiger zu den TJpegImage.



Du willst mußt aber den Inhalt (die Daten) der JpegImage speichern, also jeweils SaveToStream.
Soll das dann noch alles zusammen in einen Stream, mußt du die die größe der einzelnen Streams speichern
und dann beim Laden die Streams aufteilen und jeweils in einen MemoryStream umkopieren.
* speichernd an einen Stream anhängen geht
** vorher die alte Position/Ende merken, ein paar Byte (z.B. Integer) als Platzhalter einfügen, mit SaveToStream das Jpeg anhängen und dann den Platzhalter mit der Größe überschreiben
** oder SaveToStream in einen zwischenStream (TMemoryStream) und dann Stream.Size in den Blob und anschließend die Daten mit CopyData rüberkopieren
* beim Laden weiß dann aber LoadFromStream nicht, wo es endet
** also das Size auslesen, die Daten in einen TMemoryStream, MS.Position zurück auf 0 und LoadFromStream(MS)
** und dann so weiter, für die anderen Streams

Smiley 23. Mai 2022 12:29

AW: BlobStream in StringGrid speichern
 
Na, jetzt wissen wir wenigstens dass es so nicht funktioniert.
Wäre ja zu schön gewesen.

Ich lasse meine Praktikanten auch immer erst mal einige Zeit suchen und sich mit dem Thema beschäftigen und gebe nur kleine Hinweise aber irgendwann ist dann doch die Schmerzgrenze erreicht und dann sage ich ihnen wie es geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:46 Uhr.
Seite 3 von 3     123   

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