|
libpqxx
7.0.5
|
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 |
Public Member Functions inherited from pqxx::transaction_base | |
| transaction_base ()=delete | |
| transaction_base (transaction_base const &)=delete | |
| transaction_base & | operator= (transaction_base const &)=delete |
| virtual | ~transaction_base ()=0 |
| void | commit () |
| Commit the transaction. More... | |
| void | abort () |
| Abort the transaction. 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... | |
| 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... | |
| 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... | |
| connection & | conn () 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... | |
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) | |
| const std::string & | name () const noexcept |
| Object name, or the empty string if no name was given. More... | |
| const std::string & | 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::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 >) |
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 |