I friend of mine recently told me that you should do everything in
Firebird in the context of a transaction. If you are only
inserting/updating/deleting one record then surely you don't need a
transaction. Or if you only do one DDL change then surely you don't need
a transaction? I can understand if your transaction involves multiple
records or multiple DDL changes.
Every client request (DDL, DML) is in context of a transaction. If you
haven't started an explicit transaction up-front, your client access
layer usually creates an implicit for you then.
Transactions are a crucial part in the Firebird universe. Treat them as
your friend and not as your enemy. Research, learn and breath them.
If you get a chance, join one of the next stops of:
http://www.firebirdsql.org/en/firebird-conference-tour-2013/
According to the session descriptions and the people involved, worth
every penny.
--
With regards,
Thomas Steinmaurer
http://www.upscene.com/
Professional Tools and Services for Firebird
FB TraceManager, IB LogManager, Database Health Check, Tuning etc.