Du darfst nur bei Abfragen "open" verwenden.
Insert, Update oder Delete sind DML (Data manipulation language) und werden deshalb keine Ergebnismenge liefern (auch keine leere -> deshalb der Fehler).
Gleiches gilt für DDL - also Erzeugen, Ändern, Löschen von
Objekten (nicht Einträgen von Tabellen).
Nachtrag: Ich weiß jetzt nicht so genau wie es sich da mit den Standard
DB-kompos (
BDE &
ADO) verhält, aber bei Abfragen sollte kein ExecSQL verwendet werden, dafür aber für DML & DDL.