Hallo!
Ich benutze die Ado-Komponenten, um auf eine Ms Sql-Server DB zuzugreifen.
Um meine Sql-Abfragen abzuschicken, benutze ich das TAdoCommand-Objekt.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| var fs: TFileStream; puffer: Array of Byte; begin FAdoCommand := TADOCommand.Create(nil); FAdoCommand.Connection := AdoConnection; FAdoCommand.CommandText := 'insert into vertrag (id, datei) VALUES (123, :datei)'; FAdoCommand.CommandType := cmdText;
FADOCommand.Parameters.ParamByName('datei').DataType := ftBLob; FADOCommand.Parameters.ParamByName('datei').Direction := pdInput;
fs := TFileStream.Create('j:\test.bmp', fmOpenRead); fs.Read(Pointer(puffer)^, fs.Size);
FADOCommand.Parameters.ParamByName('datei').Value := puffer; FAdoCommand.Execute... |
Wenn ich das ausführe, öffnet Delphi zur Laufzeit das Cpu-Fenster, weil dort irgendein Fehler auftritt.
Ich habe mehrere Stunden im Netz gesucht, überall finde ich Anleitungen und Beispiele, wie ich das Abspeichern in ein Image-Feld per AdoQuery oder AdoDataSet machen kann.
Aber es muss doch auch mit der AdoCommand möglich sein oder?
Ich weiß leider nicht, ob das Pointer(puffer)^ überhaupt so richtig ist

Habe Pointer bisher wirklich gemieden und weiß nicht so Recht, damit umzugehen.
Vielleicht habt ihr ja ein paar gute Tipps.
Danke! Andy