Public Member Functions

Wt::Dbo::Transaction Class Reference
[Database Objects library (Dbo)]

A database transaction. More...

#include <Wt/Dbo/Transaction>

List of all members.

Public Member Functions

 Transaction (Session &session)
 Constructor.
 ~Transaction ()
 Destructor.
bool isActive () const
 Returns whether the transaction is still active.
bool commit ()
 Commits the transaction.
void rollback ()
 Rolls back the transaction.

Detailed Description

A database transaction.

This class implements a RAII transaction. Most dbo manipulations require that a transaction is active, and database changes will not be committed to the database until the active transaction is committed using commit().

A transaction is active until it is either committed or rolled back. When a transaction is rolled back or fails, the modified database objects are not successfully synchronized with the database. The in memory database objects remain unchanged so they may possibly be synchronized later in a new transaction.

In most occasions you will want to guard a single method with a transaction object on the stack. Unless the object is committed before returning from the method, the transaction will be rolled back.

You may create multiple (nested) transaction objects at the same time: in this way you can guard a method with a transaction object even if it is called from another method which also defines a transaction with a wider scope. Nested transactions act in concert and reference the same logical transaction: the logical transaction will fail if at least one transaction fails, and will be committed only if all transactions are committed.

Usage example:

 void doSomething(Wt::Dbo::Session& session)
 {
   Wt::Dbo::Transaction transaction(session);

   Wt::Dbo::ptr<Account> a = session.load<Account>(42);
   ...

   transaction.commit();
 }

Constructor & Destructor Documentation

Wt::Dbo::Transaction::Transaction ( Session session ) [explicit]

Constructor.

Opens a transaction for the given session. If a transaction is already open for the session, this transaction is added. All open transactions must commit successfully for the entire transaction to succeed.

Wt::Dbo::Transaction::~Transaction (  )

Destructor.

If the transaction is still active, it is rolled back.


Member Function Documentation

bool Wt::Dbo::Transaction::commit (  )

Commits the transaction.

If this is the last open transaction for the session, the session is flushed and pending changes are committed to the database.

Returns whether the transaction was flushed to the database (i.e. whether this was indeed the last open transaction).

See also:
rollback()
bool Wt::Dbo::Transaction::isActive (  ) const

Returns whether the transaction is still active.

A transaction is active unless it has been committed or rolled back.

While a transaction is active, new transactions for the same session are treated as nested transactions.

void Wt::Dbo::Transaction::rollback (  )

Rolls back the transaction.

See also:
commit(), ~Transaction()

Generated on Sat Dec 4 2010 06:32:36 for Wt by doxygen 1.7.2