Subject What's the diff between Commitretaining and Commit?
Author M Patterson (Multinail)

I have solved some problems by putting CommitRetaining after each ExecQuery. But
if you start a transaction and do a number of things all followed by
commitretaining, and then have to rollback, what can be rolled back? Is it all
mods to the values of fields, plus any deletes and inserts? Is it just DDL, and
all DDL, that cannot be rolled back?