Dieses "
ON DUPLICATE KEY UPDATE (..." ist doch kein Standard
SQL.
Was soll das denn bewirken ??
Wenn man einen Insert mit einem doppelten Key macht, gibt's halt eine
Exception und die Datenbank verweigert das Einfügen.
Wenn man ein AutoInc-Feld als Primary Key hat, dann lässt man das Feld einfach aus der Feldliste raus;
die Datenbank regelt das schon.
Wenn man fertige
SQL Inserts, Updates oder Deletes hat, setzt man diese am schnellsten
direkt über die Connection ab:
Delphi-Quellcode:
ADOConnection1.Execute('INSERT INTO NAD ( NAD ) VALUES ( '+neuesNAD+')';
// Sollte Feld NAD ein Stringfeld sein, dann so
ADOConnection1.Execute('INSERT INTO NAD ( NAD ) VALUES ( '+QuotedStr(neuesNAD)+')';
Wobei die gezeigte Lösung über Parameter zwar etwas langsamer aber doch zu bevorzugen ist.
Aber eben ohne dieses
ON DUPLICATE KEY UPDATE.