Zeos hat standardmäßig eine Transaktion. Das heißt mit jedem ExecSQL (bei AutoCommit = True) wird diese Transaktion intern Commited und eine neue geöffnet. Dein Commit ist unnötig.
wenn du jetzt z.B. mehrere
SQL Anweisungen als "Block" abarbeiten willst machst du eine neue Transaktion auf.
StartTransaktion
try
ExecSQL1
ExecSQL2
ExecSQL3
Commit
except
Rollback
end
tritt in einer der
SQL Anweisungen ein Fehler auf werden
alle SQL Anweisungen zurückgenommen, da sie in einer Transaktion laufen.
Unterschied verstanden ?
PS: ich mache mir standardmäßig eine neue auf. Auch mit nur einer
SQL Anweisung. Es könnte ja noch eine dazukommen und du kannst genau festlegen wann Commited wird.