We need to discuss the role of Dabo in dealing with database transactions. Specifically, there are three conditions we need to handle:

a) Transparent - the developer never needs to issue a begin/commit/rollback command. biz.save() automatically begin()s and commit()s, and if an exception occurs during a transaction, rollback() automatically occurs.

b) Automatic - the database module initiates transactions automatically, and the developer decides when to commit/rollback.

c) Manual - the developer is responsible for every begin/commit/rollback command.

Ideas on how to achieve these goals?

pkm: I like the thinking behind this separation of modes. I believe that currently Dabo has Transparent behavior, correct?

egl: Yes, and with AutoCommit=False, something that is close to Automatic.

What is the meaning of dBizobj.AutoCommit??
Is this the database backend meaning or some sort of dabo driven AutoCommit??
How do they relate?