Subject Re: [firebird-support] FB 2.1 transaction question
Author Thomas Steinmaurer
> I have a program that uses Firebird 2.1. Most installation use the
> embedded version so I prefer to stick with 2.1 since it does all I need.
> I have a question about transactions: if I start a transaction, I add or
> modify some data, then the program gets an exception and it crashes,
> what happens to the transaction?
> I was believing that if the program terminates without calling commit or
> rollback, then the transaction is automatically rolled back.
> Now a customer had a problem that can be explained if the transaction is
> not rolled back, but the data changes remained in the database even if
> commit was not called because the program crashed before calling it.
> Can anybody explain if changed data in this situation remains in the
> database of is it rolled back?

Data changes, which did not get acknowledged by either COMMIT or COMMIT
RETAINING should never get permanently persisted.

Any chance that you are using your client access components in auto
commit mode?

With regards,
Thomas Steinmaurer

Professional Tools and Services for Firebird
FB TraceManager, IB LogManager, Database Health Check, Tuning etc.