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]