Bei deinem Code geht nicht richtig hervor, was du eigentlich tun möchtest.
Möchtest du grundsätzlich immer einen Datensatz einfügen oder möchtest du
eine Edit/Einfügen-Strategie fahren?
Diese Edit/Einfügen Strategie kommt recht häufig vor und sieht so aus:
Delphi-Quellcode:
Query.close;
query.Parameters.ParamValues['
Keyfeld'] = keyfeld;
Query.Open;
// die Query liefert genau einen Datensatz oder eine leere Datenmenge zurück
if Query.IsEmpty
then
begin
Query.Append;
// nicht Insert verwenden; Insert ist langsamer als Append!
Query['
Keyfeld'] := ...;
end
else
Query.Edit;
// Datenfelder mit neuen Daten befüllen
query['
Feld1'] := ...;
....
Query.Post;