Hallo Jazz
TADOCommand hat ein Property CheckParam, welches standardmässig auf true steht. Setzt das mal auf false! Wenn das nicht geht, kannst Du immer noch mit einem TADOQuery arbeiten. Anstelle eines Insert-Statements kannst Du ein Select-Statement verwenden, welches Du aktivierst.
Das könnte etwa so aussehen:
Code:
ADOQuery1.SQL.Text := 'SELECT * FROM Table WHERE KeyFld=1';
ADOQuery1.Active := true;
try
if ADOQuery1.EOF then
ADOQuery1.Insert
else
ADOQuery1.Edit;
ADOQuery1.FieldByName('var1').AsString := var1;
ADOQuery1.FieldByName('var2').AsString := var2;
ADOQuery1.FieldByName('var3').AsString := var3;
ADOQuery1.Post;
finally
ADOQuery1.Active := false;
end;
Damit nicht alle Datensätze geladen werden, kannst Du entweder das Property MaxRecords auf 1 setzen oder wie oben ein where-Statement verwenden (z.B. Schlüssel-Felder auf die neuen werte setzen). Der Vorteil bei der Art des Beispiels ist, dass ein schon vorhandener Datensatz gleich geändert werden kann!
Gruss
Xaver