AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Aus TurboDB Blob in Stream schreiben

Aus TurboDB Blob in Stream schreiben

Ein Thema von machstuhl · begonnen am 15. Aug 2012 · letzter Beitrag vom 17. Aug 2012
Antwort Antwort
Seite 2 von 2     12
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.307 Beiträge
 
Delphi XE7 Professional
 
#11

AW: Aus TurboDB Blob in Stream schreiben

  Alt 16. Aug 2012, 10:11
Wird es so besser?

Delphi-Quellcode:
J := TJPEGImage.Create;
ms.seek(0,soFromBeginning); // oder ms.position :=0
J.LoadFromStream(MS);
Form3.Image1.Picture.Assign(J);
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
machstuhl

Registriert seit: 17. Jul 2012
40 Beiträge
 
#12

AW: Aus TurboDB Blob in Stream schreiben

  Alt 16. Aug 2012, 10:17
Wird es so besser?

Delphi-Quellcode:
J := TJPEGImage.Create;
ms.seek(0,soFromBeginning); // oder ms.position :=0
J.LoadFromStream(MS);
Form3.Image1.Picture.Assign(J);
Grüße
Klaus
Nein.

Ein
Code:
(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.

Thx für die Mühen =)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.307 Beiträge
 
Delphi XE7 Professional
 
#13

AW: Aus TurboDB Blob in Stream schreiben

  Alt 16. Aug 2012, 10:22
.. sollte aber eigentich funktionieren.

Im Stream befindet sich ein jpg Image?
Ist der Stream o.k. - sind darin Daten vorhanden?

eventuell noch eine Fehlerbehandlung einbauen
Delphi-Quellcode:
(FindField('BLOB1') As TBlobField).SaveToStream(MS);
ms.Position := 0;
J := TJPEGImage.Create;
try
  try
    J.LoadFromStream(MS);
    Form3.Image1.Picture.Assign(J);
  except
    on E:Exception do
      showMessage(E.Message);
  end;
finally
  j.free;
end;
Grüße
Klaus
Klaus

Geändert von Klaus01 (16. Aug 2012 um 10:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.851 Beiträge
 
Delphi 10.3 Rio
 
#14

AW: Aus TurboDB Blob in Stream schreiben

  Alt 16. Aug 2012, 10:23
Existiert das Formular bzw. das TImage auch zu diesem Zeitpunkt? Ich finde den hartkodierten Zugriff auf VCL-Controls in diesem Kontext etwas unglücklich, zumal da auch noch mit benannten Instanzen hantiert wird.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
machstuhl

Registriert seit: 17. Jul 2012
40 Beiträge
 
#15

AW: Aus TurboDB Blob in Stream schreiben

  Alt 16. Aug 2012, 10:35
Existiert das Formular bzw. das TImage auch zu diesem Zeitpunkt? Ich finde den hartkodierten Zugriff auf VCL-Controls in diesem Kontext etwas unglücklich, zumal da auch noch mit benannten Instanzen hantiert wird.
Ja, es existiert beides.

.. sollte aber eigentich funktionieren.

Im Stream befindet sich ein jpg Image?
Ist der Stream o.k. - sind darin Daten vorhanden?

eventuell noch eine Fehlerbehandlung einbauen
Delphi-Quellcode:
(FindField('BLOB1') As TBlobField).SaveToStream(MS);
ms.Position := 0;
J := TJPEGImage.Create;
try
  try
    J.LoadFromStream(MS);
    Form3.Image1.Picture.Assign(J);
  except
    on E:Exception do
      showMessage(E.Message);
  end;
finally
  j.free;
end;
Grüße
Klaus
done, bringt leider nicht viel, da er bei
Code:
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?+


edit:
Code:
J.LoadFromStream(MS);
J.SaveToFile('C:\test.jpeg');
speichert mir die File auf C. D.h. der Stream ist korreckt und das Bild ist im TJpegImage angekommen.

Geändert von machstuhl (16. Aug 2012 um 10:50 Uhr)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.307 Beiträge
 
Delphi XE7 Professional
 
#16

AW: Aus TurboDB Blob in Stream schreiben

  Alt 16. Aug 2012, 10:38
done, bringt leider nicht viel, da er bei
Code:
Form3.Image1.Picture.Assign(J);
direkt rausspringt.

Wie kann ich dem TImage verklickern, dass da ein JPEG ankommt, oder liegt da nicht der Hase im Pfeffer?
Das die Fehlerbenhandlung den Fehler nicht behebt war mit klar - nur dachte ich, dass eventuell
ein verwertbare Fehlermeldung dabei herauskommen würde.

Das TImage weiß das ein jpg hereinkommt, Du übergibst ja die jpg Instanz.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
machstuhl

Registriert seit: 17. Jul 2012
40 Beiträge
 
#17

AW: Aus TurboDB Blob in Stream schreiben

  Alt 16. Aug 2012, 11:28
Habs, danke an alle.

Der Code in der Klasse.

Code:
FBLOB1 := TMemoryStream.Create;
(FindField('BLOB1') As TBlobField).SaveToStream(FBLOB1);
FBLOB1.Position := 0;
Der Code vom Formular
Code:
T := TTEST1_tdb.create;
T.ID := 8;
T.Load;
J := TJpegImage.Create;
J.LoadFromStream(T.BLOB1);
Image1.Picture.Assign(J);
FreeAndNil(J);
FreeAndNil(T);
Im Endeffekt lag es dadran, dass ich aus der Klasseunit heraus irgendwie nicht Image1 befüllen konnte. kA warum.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#18

AW: Aus TurboDB Blob in Stream schreiben

  Alt 17. Aug 2012, 03:41
Weil du nicht wahr haben willst, was andere dir hier schreiben.

Stichwort Casten: "Nö, ich muss nicht casten" - Lösung: Casten

Stichwort Direkter Zugriff auf eine Komponente: "Nö, da ist alles da" - Lösung: Ohne direkten Zugriff
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf