Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Bild in mdb-Datei schreib funzt nicht - WARUM? (https://www.delphipraxis.net/19929-bild-mdb-datei-schreib-funzt-nicht-warum.html)

torud 11. Apr 2004 10:23


Bild in mdb-Datei schreib funzt nicht - WARUM?
 
Mit den zwei untenstehenden proceduren versuche ich das aktuelle Bild, welches sich derzeit noch lokal auf dem pc befindet in den jeweiligen Datensatz zu schreiben und dann bei OnChange wieder auszulesen. Das Auslesen kann schon nicht klappen, da ich schon direkt nach dem Schreiben in der Messagebox sehe, dass die Groesse des Blobs 0 ist. Somit wurde nicht geschrieben. Fakt ist aber, dass definitiv ein Bild uebergeben wurde.

Delphi-Quellcode:
procedure SaveImage(Tabelle: TADOTable; Bild: TImage; Feldname: String);
var size:integer;
begin
  Tabelle.Edit;
  (Tabelle.FindField(Feldname) As TBlobField).Assign(Bild.Picture);
   size:=(Tabelle.FindField(Feldname) As TBlobField).BlobSize;
   ShowMessage('groesse:'+inttostr(size));
  Tabelle.Post;
end;

procedure LoadImage(Tabelle: TADOTable; Bild: TImage; Feldname: String);
begin
  if (Tabelle.FindField(Feldname) As TBlobField).BlobSize > 0 then
   ShowMessage('bild da');
   Bild.Picture.Assign((Tabelle.FindField(Feldname) As TBlobField));
end;
Mache ich was falsch, oder kann das grundsaetzlich so nicht funktionieren. Uebrigens: Das Feld, in welches geschrieben wird, habe ich als LongBinary erzeugt.

[edit=r_kerber]Code- durch Delphi-Tags ersetzt. Mfg, r_kerber[/edit]

Matt 11. Apr 2004 13:44

Re: Bild in mdb-Datei schreib funzt nicht - WARUM?
 
Hallo,
ich habe zwar keine Lösung für Dich, aber wollte Dich darauf hinweisen, dass Access nicht die richtige DB ist, um dort Bilder zu speichern! Access wandelt alle Bilder automatisch wieder in BMP um und somit nutzt ein kleines Bild bereits 1-2 MB (je nach Größe) und je nach Anzahl Deiner Bilder "bläht" sich die DB ins endlose auf.

Mein Tipp:
Speichere nur den Pfad zum Bild und lese ihn dann bei Bedarf wieder aus, um das Bild anzuzeigen!

Gruß Matt

torud 11. Apr 2004 16:06

Re: Bild in mdb-Datei schreib funzt nicht - WARUM?
 
Danke fuer den Tipp.

Ich habe folgendes vor. Ich habe ein DB mit allen Laendern dieser Welt erstellt. Zu jedem dieser Laender habe ich die Flagge parat. Diese liegt momentan im Applicationpath. Ich dachte, dass es besser waere die Bilder in die DB zu packen.

Dem scheint also nicht so.

OK, dann lass ich es lieber.

Aber des Raetsels Loesung wuerde mich dennoch interessieren.

Jens Schumann 11. Apr 2004 17:51

Re: Bild in mdb-Datei schreib funzt nicht - WARUM?
 
Hallo,
schau mal unter folgendem Link nach.
Entwickler

Das Feld muss vom Type OLE-Objekt sein. Dann kannst Du darin ein BLOB speichern.
Da es sich um ein BLOB handelt speichert Access es auch als binäre Daten.
Das Access ein Bild automatisch in ein BMP umwandelt glaube ich nicht. Wie auch?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz