Forum: Datenbanken
by DeddyH,
13. Sep 2010
Ich denke, es lag vermutlich eher daran, dass Du statt LoadFromStream SaveToStream geschrieben hattest. Das Setzen der Position des Streams spult quasi an den Anfang zurück, ich bin nicht ganz sicher, ob das bei LoadFromStream automatisch gemacht wird. Eigentlich wäre das logisch, aber ich kann gerade nicht nachsehen. Im Zweifel einfach die Zeile auskommentieren und schauen, was passiert ;)
Forum: Datenbanken
by DeddyH,
13. Sep 2010
Klappt es denn mit dem Code aus meinem letzten Edit?
BTW: Wieso eigentlich pngBild, wenn es eine JPEG ist? Finde ich etwas verwirrend.
Forum: Datenbanken
by DeddyH,
13. Sep 2010
Sind es denn auch JPEGs in der Datenbank?
Müssen es wohl, sonst würde der Umweg über die Datei ja nicht funktionieren. Evtl. muss man vor dem LoadFromStream noch die Position setzen. Wie sieht es so aus?
if qryGetDAtaBild.BlobSize > 0 then
begin
stBild := TMemoryStream.Create;
try
pngBild := TJPEGImage.Create; // Grafik im JPEG Format erstellen...
Forum: Datenbanken
by DeddyH,
13. Sep 2010
Siehe mein Edit (hat sich wohl mit Deinem Post überschnitten).
Forum: Datenbanken
by DeddyH,
13. Sep 2010
Das hatten wir doch schon. Dann erstelle halt eine Grafik im passenden Format (TBitmap, TJPEGImage or whatever), lade dort über den Stream den BLOB-Inhalt rein und weise sie dann dem Image zu.
Angenommen, in den BLOBs stehen Bitmaps:
if qryGetDAtaBild.BlobSize > 0 then
begin
stBild := TMemoryStream.Create;
try
...
Forum: Datenbanken
by DeddyH,
13. Sep 2010
if qryGetDAtaBild.BlobSize > 0 then
begin
stBild := TMemoryStream.Create;
try
qryGetDAtaBild.SaveToStream(stBild); //Stream statt File
Frames.Image1.Picture.LoadFromStream(stBild); //s.o.
finally
stBild.Free;
end;
end;
Forum: Datenbanken
by DeddyH,
13. Sep 2010
Zeig mal etwas mehr Code.
Forum: Datenbanken
by DeddyH,
13. Sep 2010
Nee, nicht richtig. TQuery stammt von TDataset ab, TBlobField von TField.
Forum: Datenbanken
by DeddyH,
11. Sep 2010
Das klingt nach TQuery ;)
Forum: Datenbanken
by DeddyH,
9. Sep 2010
Und Bild anschließend wieder freigeben.
Forum: Datenbanken
by DeddyH,
9. Sep 2010
Dann versuch es mal so:
Frames.Image1.Picture.Graphic.LoadFromStream(Bilder);
Wenn das auch nicht geht, in eine entsprechende temporäre Grafik-Variable laden und die dann zuweisen.
Forum: Datenbanken
by DeddyH,
9. Sep 2010
Frames.Image1.Picture.LoadFromStream(Bilder);