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?