Einzelnen Beitrag anzeigen

Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#12

AW: JPEG-Datenbankkomponente für Delphi

  Alt 23. Okt 2010, 20:43
Speicher ein JPEG in der DB in ein BLOB-Feld.
Verbinde dieses BLOB-Feld mit TDBImage und das Bild wird angezeigt. (das mit der jpeg unit nicht vergessen)
Niemand konnte ahnen, dass du mit TDBImage ein Feld verknüpft hast, wo in einem string ein Pfad steht.
Aus seinem Beispiel:

TDBImage - Fieldname Bild - FieldKind fkData - BlobType ftGraphic

Den Pfad-String speichert er zwar auch, aber wird nicht von TDBImage (aus der DB) verwendet. Das TImage liegt z.Z. nur auf dem Formular, um beim Laden einen Gegenkontrolle zu haben.

Was hier nicht funktioniert, ist das erste Einlesen des JPG-Bildes in die Datenbank via
DBImage1.Picture.LoadFromFile(OpenPictureDialog1.filename); .
weshalb in der Datenbank auch das Blob-Feld leer bleibt. Bei BMP/GIF funktioniert die Methode aber.

PS: Funktioniert mit keinem nachträglich registrierten Bild-Typ, also auch nicht mit PNG/TIF via GraphicEx.

***

So wie es aussieht will er schon die Bilder in der Datenbank halten und nicht nur die Dateinamen, aber nicht als unkomprimiertes BMP. Die Dateinamen waren nur eine Alternative um notfalls ein TImage statt TDBImage verwenden zu können (müssen).

***

Schlagt mich nicht, aber ich glaube er hat soweit recht. TDBImage kann kein komprimiertes JPG-Imgage direkt darstellen.

Ohne es zu testen, der Umweg über
DBImage1.Picture.Assign(JPEGImage1.Picture); .
speichert wohl auch nur RAW-Daten im Blob, oder?

Geändert von Satty67 (23. Okt 2010 um 21:36 Uhr)
  Mit Zitat antworten Zitat