![]() |
Datenbank: DB2 • Zugriff über: TADOConnection
Bild im Blob Feld abspeichern
Hallo zusammen,
ich habe ein bestehendes Programm welches unterschiedliche Anbindungen zu unterschiedlichen Datenbanken ermöglicht. Nun habe ich eine DB2 Anbindung. Das läuft soweit ganz gut. Mein Problem ist, ich kann zwar Bilder aus der Datenbank lesen und als File auf der Festplatte abspeichern, aber ich kann keine Bilder von der Festplatte in die Blobfelder schreiben. Das Schreiben erfolgt folgendermaßen: vorher mache ich eine SQL Anweisung auf einen bestimmten Datensatz. Wenn der Recordcount dann 0 ist, wird ein Append + Edit ausgeführt, ansonsten der folgende Code:
Delphi-Quellcode:
So, das ist es im groben. Die Datenbank kommt weder mit einem Fehler noch mit was anderem zurück. Aber das Bild wird nicht dort gespeichert. Die geladene Blobgröße ist auf jeden Fall richtig und das Bild existiert auch in dem Verzeichnis.
var BF : TBlobField
F : String; begin ... my.Table.Edit; BF := mytable.FieldByName(myField) As TBlobField; if FileExists(F) then // Datei wird vorher geholt und abgefragt begin BF.LoadFromFile(F); try mytable.Post; except Showmessage('Error while saving blob!'); end; end else begin myTable.Cancel; Showmessage('File not found: ' + F); end; Hoffe mir kann da jemand weiterhelfen. Gruß, Moony |
Re: Bild im Blob Feld abspeichern
Lies Dir das hier mal durch:
![]() |
Re: Bild im Blob Feld abspeichern
Danke, habe ich mir durchgelesen, aber o ganz konnte mich das nicht weiterbringen. Habe das jetzt folgendermaßen gemacht, aber immer noch das gleiche Ergebnis:
Delphi-Quellcode:
...
FS := TMemoryStream.Create; try FS.LoadFromFile(F); _BF := mytable.FieldByName(myField); // _BF : TField BS := mytable.CreateBlobStream(_BF, bmWrite); FS.SaveToStream(BS); finally FS.Free; end; |
Re: Bild im Blob Feld abspeichern
Mit DB2 kenn ich mich leider nicht aus. Anderer Link:
![]() |
Re: Bild im Blob Feld abspeichern
Also irgendwie fruchtet das alles nicht..... :wall:
|
Re: Bild im Blob Feld abspeichern
Habe das jetzt folgendermaßen geschafft das Bild dort einzuspeichern:
Delphi-Quellcode:
Gruß, und danke für die Denkanstöße.
MS := TMemoryStream.Create;
try MS.LoadFromFile(F); mytable.SQL.Clear; mytable.SQL.Add('UPDATE ' + TableName + ' SET ' + PhotoField + ' = '); mytable.SQL.Add('(:' + PhotoField + ')'); mytable.SQL.Add(' WHERE ' + IndexField + ' = ''' + IndexValue + ''''); mytable.Parameters.ParamByName(PhotoField).LoadFromStream(MS, ftBlob); try mytable.ExecSQL; except MessageDlg(SysErrorMessage(GetLastError()), mtError, [mbOK], 0); end; finally MS.Free; end; Moony |
Re: Bild im Blob Feld abspeichern
Hallo zusammen, mein letzter Beitrag hier besagt, dass die aufgelistete Routine funktioniert, das hat sie auch. Aber warum auch immer geht das jetzt nicht mehr. Beim Ausführen des SQL Befehls tritt eine Exception auf.
Kann mir da jemand dringend weiterhelfen????? Danke & Gruß, Moony |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 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