Das sieht doch soooo schlecht gar nicht aus
Du scheinst aber noch einen Syntaxfehler drin zu haben wenn ich es richtig überflogen habe.
Zunächst reicht eine FOR-Schleife aus. Und bei der IF-Abfrage fehlt ein BEGIN...END. Pseudocode:
Delphi-Quellcode:
FOR [...] DO BEGIN
IF ID=-1 THEN BEGIN
{ INSERT }
END ELSE BEGIN
{ UPDATE }
END; {else}
END; {for}