libpqxx
7.0.2
|
Simple "transaction" class offering no transactional integrity. More...
#include <nontransaction.hxx>
Public Member Functions | |
nontransaction (connection &c, std::string const &name=std::string{}) | |
Constructor. More... | |
virtual | ~nontransaction () override |
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.
|
explicit |
Constructor.
Create a "dummy" transaction.
c | Connection that this "transaction" will operate on. |
name | Optional name for the transaction, beginning with a letter and containing only letters and digits. |
|
overridevirtual |