Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

pqxx::transaction< ISOLATIONLEVEL > Class Template Reference

Standard back-end transaction, templatized on isolation level. More...

#include <transaction.hxx>

Inheritance diagram for pqxx::transaction< ISOLATIONLEVEL >:

pqxx::basic_transaction pqxx::dbtransaction pqxx::transaction_base pqxx::internal::namedclass List of all members.

Public Types

typedef isolation_traits<
ISOLATIONLEVEL > 
isolation_tag
 If nothing else is known, our isolation level is at least read_committed.

Public Member Functions

 transaction (connection_base &C, const PGSTD::string &TName)
 Create a transaction.
 transaction (connection_base &C)
virtual ~transaction () throw ()

Protected Member Functions

virtual const char * classname () const throw ()

Detailed Description

template<isolation_level ISOLATIONLEVEL = read_committed>
class pqxx::transaction< ISOLATIONLEVEL >

Standard back-end transaction, templatized on isolation level.

This is the type you'll normally want to use to represent a transaction on the database.

While you may choose to create your own transaction object to interface to the database backend, it is recommended that you wrap your transaction code into a transactor code instead and let the transaction be created for you.

See also:
pqxx/transactor.hxx
If you should find that using a transactor makes your code less portable or too complex, go ahead, create your own transaction anyway.

Usage example: double all wages

 extern connection C;
 work T(C);
 try
 {
   T.exec("UPDATE employees SET wage=wage*2");
   T.commit();  // NOTE: do this inside try block
 } 
 catch (const exception &e)
 {
   cerr << e.what() << endl;
   T.abort();           // Usually not needed; same happens when T's life ends.
 }


Member Typedef Documentation

template<isolation_level ISOLATIONLEVEL = read_committed>
typedef isolation_traits<ISOLATIONLEVEL> pqxx::transaction< ISOLATIONLEVEL >::isolation_tag
 

If nothing else is known, our isolation level is at least read_committed.

Reimplemented from pqxx::transaction_base.


Constructor & Destructor Documentation

template<isolation_level ISOLATIONLEVEL = read_committed>
pqxx::transaction< ISOLATIONLEVEL >::transaction connection_base C,
const PGSTD::string &  TName
[explicit]
 

Create a transaction.

Parameters:
C Connection for this transaction to operate on
TName Optional name for transaction; must begin with a letter and may contain letters and digits only

template<isolation_level ISOLATIONLEVEL = read_committed>
pqxx::transaction< ISOLATIONLEVEL >::transaction connection_base C  )  [explicit]
 

template<isolation_level ISOLATIONLEVEL = read_committed>
virtual pqxx::transaction< ISOLATIONLEVEL >::~transaction  )  throw () [virtual]
 


Member Function Documentation

template<isolation_level ISOLATIONLEVEL = read_committed>
virtual const char* pqxx::transaction< ISOLATIONLEVEL >::classname  )  const throw () [protected, virtual]
 

Reimplemented from pqxx::internal::namedclass.


The documentation for this class was generated from the following file:
Generated on Mon Nov 15 11:28:05 2004 for libpqxx by  doxygen 1.3.9.1