Forum: Datenbanken
by machstuhl,
16. Aug 2012
Habs, danke an alle.
Der Code in der Klasse.
FBLOB1 := TMemoryStream.Create;
(FindField('BLOB1') As TBlobField).SaveToStream(FBLOB1);
FBLOB1.Position := 0;
Der Code vom Formular
T := TTEST1_tdb.create;
Forum: Datenbanken
by machstuhl,
16. Aug 2012
Ja, es existiert beides.
done, bringt leider nicht viel, da er bei Form3.Image1.Picture.Assign(J); direkt rausspringt.
Daten befinden sich im Stream. Ein ShowMessage(IntToStr(MS.Size)); gibt mir den Wert 777835 zurück. realistisch?
Wie kann ich dem TImage verklickern, dass da ein JPEG ankommt, oder liegt da nicht der Hase im Pfeffer?+
Forum: Datenbanken
by machstuhl,
16. Aug 2012
Nein.
Ein
(FindField('BLOB1') As TBlobField).SaveToStream(MS);
ms.Position := 0; // <<<<
J := TJPEGImage.Create;
J.LoadFromStream(MS);
Form3.Image1.Picture.Assign(J); // Hier tritt der Zugriffsfehler auf
bringt auch keine Besserung.
Forum: Datenbanken
by machstuhl,
16. Aug 2012
sorry schonmal für den doppelpost, aber der obere ist irrelevant geworden. das blobfeld ist nun im stream.
(FindField('BLOB1') As TBlobField).SaveToStream(MS);
hat die Lösung gebracht, thx dafür.
nächstes Problem
J := TJPEGImage.Create;
J.LoadFromStream(MS);
Form3.Image1.Picture.Assign(J);
Forum: Datenbanken
by machstuhl,
15. Aug 2012
Zufällig nicht, das wäre ja viel zu einfach :D.
Casten brauch ich denke ich nichts.
der Fehler tritt in folgender Zeile auf.
Stream0 := CreateBlobStream(FieldByName('BLOB1'), bmRead);
edit:
mittlerweile habe ich den code ein bisschen umgeändert, funktioniert aber immernoch nicht.
Forum: Datenbanken
by machstuhl,
15. Aug 2012
Hallo Freunde der Nacht,
über folgendem Problem sitze ich schon einige Tage und komme nicht weiter.
Ziel ist es, ein Blobfeld (meistens JPEG) aus der Datenbank auszulesen, in einen Stream zu schreiben und dann in einem TImage auszugeben.
Der Code aus der Klasse (FBLOB1 = TMemoryStream, Stream0 = TStream)
Stream0 := CreateBlobStream(FieldByName('BLOB1'), bmRead);
Stream0.Position :=...