libpqxx  7.0.5
pqxx::transaction< ISOLATION, READWRITE > Class Template Referencefinal

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

#include <transaction.hxx>

Inheritance diagram for pqxx::transaction< ISOLATION, READWRITE >:

Public Member Functions

 transaction (connection &c, std::string const &tname)
 Create a transaction. More...
 
 transaction (connection &c)
 
virtual ~transaction () noexcept override
 
- Public Member Functions inherited from pqxx::transaction_base
 transaction_base ()=delete
 
 transaction_base (transaction_base const &)=delete
 
transaction_baseoperator= (transaction_base const &)=delete
 
virtual ~transaction_base ()=0
 
void commit ()
 Commit the transaction. More...
 
void abort ()
 Abort the transaction. More...
 
result exec (std::string_view query, std::string const &desc=std::string{})
 Execute query. More...
 
result exec (std::stringstream const &query, std::string const &desc=std::string{})
 
result exec0 (std::string const &query, std::string const &desc=std::string{})
 Execute query, which should zero rows of data. More...
 
row exec1 (std::string const &query, std::string const &desc=std::string{})
 Execute query returning a single row of data. More...
 
result exec_n (result::size_type rows, std::string const &query, std::string const &desc=std::string{})
 Execute query, expect given number of rows. More...
 
template<typename TYPE >
TYPE query_value (std::string const &query, std::string const &desc=std::string{})
 Execute query, expecting exactly 1 row with 1 field. More...
 
connectionconn () const
 The connection in which this transaction lives. More...
 
void set_variable (std::string_view var, std::string_view value)
 Set session variable using SQL "SET" command. More...
 
std::string get_variable (std::string_view)
 Read session variable using SQL "SHOW" command. More...
 
std::string esc (char const text[]) const
 Escape string for use as SQL string literal in this transaction. More...
 
std::string esc (char const text[], size_t maxlen) const
 Escape string for use as SQL string literal in this transaction. More...
 
std::string esc (std::string const &text) const
 Escape string for use as SQL string literal in this transaction. More...
 
std::string esc (std::string_view text) const
 Escape string for use as SQL string literal in this transaction. More...
 
std::string esc_raw (unsigned char const data[], size_t len) const
 Escape binary data for use as SQL string literal in this transaction. More...
 
std::string esc_raw (std::string const &) const
 Escape binary data for use as SQL string literal in this transaction. More...
 
std::string unesc_raw (std::string const &text) const
 Unescape binary data, e.g. from a table field or notification payload. More...
 
std::string unesc_raw (char const *text) const
 Unescape binary data, e.g. from a table field or notification payload. More...
 
template<typename T >
std::string quote (T const &t) const
 Represent object as SQL string, including quoting & escaping. More...
 
std::string quote_raw (unsigned char const bin[], size_t len) const
 Binary-escape and quote a binarystring for use as an SQL constant. More...
 
std::string quote_raw (std::string const &bin) const
 
std::string quote_name (std::string_view identifier) const
 Escape an SQL identifier for use in a query. More...
 
std::string esc_like (std::string const &bin, char escape_char='\\') const
 Escape string for literal LIKE match. More...
 
template<typename... Args>
result exec_params (std::string const &query, Args &&... args)
 Execute an SQL statement with parameters. More...
 
template<typename... Args>
row exec_params1 (std::string const &query, Args &&... args)
 
template<typename... Args>
result exec_params0 (std::string const &query, Args &&... args)
 
template<typename... Args>
result exec_params_n (size_t rows, std::string const &query, Args &&... args)
 
template<typename... Args>
result exec_prepared (std::string const &statement, Args &&... args)
 Execute a prepared statement, with optional arguments. More...
 
template<typename... Args>
result exec_prepared (zview statement, Args &&... args)
 
template<typename... Args>
row exec_prepared1 (std::string const &statement, Args &&... args)
 Execute a prepared statement, and expect a single-row result. More...
 
template<typename... Args>
row exec_prepared1 (zview statement, Args &&... args)
 
template<typename... Args>
result exec_prepared0 (std::string const &statement, Args &&... args)
 Execute a prepared statement, and expect a result with zero rows. More...
 
template<typename... Args>
result exec_prepared0 (zview statement, Args &&... args)
 
template<typename... Args>
result exec_prepared_n (result::size_type rows, std::string const &statement, Args &&... args)
 Execute a prepared statement, expect a result with given number of rows. More...
 
template<typename... Args>
result exec_prepared_n (result::size_type rows, zview statement, Args &&... args)
 
void process_notice (char const msg[]) const
 Have connection process a warning message. More...
 
void process_notice (std::string const &msg) const
 Have connection process a warning message. More...
 
- Public Member Functions inherited from pqxx::internal::namedclass
 namedclass (std::string_view classname)
 
 namedclass (std::string_view classname, std::string_view name)
 
 namedclass (std::string_view classname, char const name[])
 
 namedclass (std::string_view classname, std::string &&name)
 
std::string const & name () const noexcept
 Object name, or the empty string if no name was given. More...
 
std::string const & classname () const noexcept
 Class name. More...
 
std::string description () const
 Combination of class name and object name; or just class name. More...
 

Additional Inherited Members

- Protected Member Functions inherited from pqxx::internal::basic_transaction
 basic_transaction (connection &c, char const begin_command[])
 
- Protected Member Functions inherited from pqxx::dbtransaction
 dbtransaction (connection &c)
 
- Protected Member Functions inherited from pqxx::transaction_base
 transaction_base (connection &c)
 Create a transaction (to be called by implementation classes only). More...
 
void register_transaction ()
 Register this transaction with the connection. More...
 
void close () noexcept
 End transaction. To be called by implementing class' destructor. More...
 
result direct_exec (std::string_view)
 Execute query on connection directly. More...
 
result direct_exec (std::shared_ptr< std::string >)
 

Detailed Description

template<isolation_level ISOLATION = isolation_level::read_committed, write_policy READWRITE = write_policy::read_write>
class pqxx::transaction< ISOLATION, READWRITE >

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.

Usage example: double all wages.

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

Constructor & Destructor Documentation

◆ transaction() [1/2]

template<isolation_level ISOLATION = isolation_level::read_committed, write_policy READWRITE = write_policy::read_write>
pqxx::transaction< ISOLATION, READWRITE >::transaction ( connection c,
std::string const &  tname 
)
explicit

Create a transaction.

Parameters
cConnection for this transaction to operate on.
tnameOptional name for transaction. Must begin with a letter and may contain letters and digits only.

◆ transaction() [2/2]

template<isolation_level ISOLATION = isolation_level::read_committed, write_policy READWRITE = write_policy::read_write>
pqxx::transaction< ISOLATION, READWRITE >::transaction ( connection c)
explicit

◆ ~transaction()

template<isolation_level ISOLATION = isolation_level::read_committed, write_policy READWRITE = write_policy::read_write>
virtual pqxx::transaction< ISOLATION, READWRITE >::~transaction ( )
overridevirtualnoexcept

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