libpqxx  7.0.1
pqxx::nontransaction Class Referencefinal

Simple "transaction" class offering no transactional integrity. More...

#include <nontransaction.hxx>

Inheritance diagram for pqxx::nontransaction:

Public Member Functions

 nontransaction (connection &c, std::string const &name=std::string{})
 Constructor. More...
 
virtual ~nontransaction () override
 

Detailed Description

Simple "transaction" class offering no transactional integrity.

nontransaction, like transaction or any other transaction_base-derived class, provides access to a database through a connection. Unlike its siblings, however, nontransaction does not maintain any kind of transactional integrity. This may be useful eg. for read-only access to the database that does not require a consistent, atomic view on its data; or for operations that are not allowed within a backend transaction, such as creating tables.

For queries that update the database, however, a real transaction is likely to be faster unless the transaction consists of only a single record update.

Also, you can keep a nontransaction open for as long as you like. Actual back-end transactions are limited in lifespan, and will sometimes fail just because they took too long to execute or were left idle for too long. This will not happen with a nontransaction (although the connection may still time out, e.g. when the network is unavailable for a very long time).

Any query executed in a nontransaction is committed immediately, and neither commit() nor abort() has any effect.

Database features that require a backend transaction, such as cursors or large objects, will not work in a nontransaction.

Constructor & Destructor Documentation

◆ nontransaction()

pqxx::nontransaction::nontransaction ( connection &  c,
std::string const &  name = std::string{} 
)
explicit

Constructor.

Create a "dummy" transaction.

Parameters
cConnection that this "transaction" will operate on.
nameOptional name for the transaction, beginning with a letter and containing only letters and digits.

◆ ~nontransaction()

virtual pqxx::nontransaction::~nontransaction ( )
overridevirtual

The documentation for this class was generated from the following file: