#include <connection_base.h>
Inheritance diagram for pqxx::Connection_base:
Public Member Functions | |
Connection_base (const PGSTD::string &ConnInfo) | |
Constructor. Sets up connection PostgreSQL connection string. | |
Connection_base (const char ConnInfo[]) | |
Constructor. Sets up connection based on PostgreSQL connection string. | |
virtual | ~Connection_base ()=0 |
Destructor. Implicitly closes the connection. | |
void | Disconnect () throw () |
Explicitly close connection. | |
bool | is_open () const |
Is this connection open? | |
template<typename TRANSACTOR> void | Perform (const TRANSACTOR &T, int Attempts=3) |
Perform the transaction defined by a Transactor-based object. | |
PGSTD::auto_ptr< Noticer > | SetNoticer (PGSTD::auto_ptr< Noticer > N) |
Set handler for postgresql errors or warning messages. | |
Noticer * | GetNoticer () const throw () |
void | ProcessNotice (const char[]) throw () |
Invoke notice processor function. The message should end in newline. | |
void | ProcessNotice (const PGSTD::string &msg) throw () |
Invoke notice processor function. The message should end in newline. | |
void | Trace (FILE *) |
Enable tracing to a given output stream, or NULL to disable. | |
void | GetNotifs () |
Check for pending trigger notifications and take appropriate action. | |
const char * | DbName () |
Name of database we're connected to, if any. | |
const char * | UserName () |
Database user ID we're connected under, if any. | |
const char * | HostName () |
Address of server (NULL for local connections). | |
const char * | Port () |
Server port number we're connected to. | |
const char * | Options () const throw () |
Full connection string as used to set up this connection. | |
int | BackendPID () const |
Process ID for backend process. | |
void | Activate () |
Explicitly activate deferred or deactivated connection. | |
void | Deactivate () |
Explicitly deactivate connection. | |
void | SetClientEncoding (const PGSTD::string &Encoding) |
Set client-side character encoding. | |
void | SetVariable (const PGSTD::string &Var, const PGSTD::string &Value) |
Set session variable. | |
Protected Member Functions | |
void | Connect () |
To be used by implementation classes: really connect to database. | |
Friends | |
class | Transaction_base |
Variables set in session. | |
class | LargeObject |
class | Trigger |
This is the first class to look at when you wish to work with a database through libpqxx. Depending on the implementing concrete child class, a connection can be automatically opened when it is constructed, or when it is first used. The connection is automatically closed upon destruction, if it hasn't already been closed manually. To query or manipulate the database once connected, use one of the Transaction classes (see pqxx/transaction_base.h) or preferably the Transactor framework (see pqxx/transactor.h). A word of caution: if a network connection to the database server fails, the connection will be restored automatically (although any transaction going on at the time will have to be aborted). This also means that any information set in previous transactions that is not stored in the database, such as connection-local variables defined with PostgreSQL's SET command, will be lost. Whenever you need to create such state, either do it within each transaction that may need it, or use specialized functions made available by libpqxx. Always avoid raw queries if libpqxx offers a dedicated function for the same purpose.
|
Constructor. Sets up connection PostgreSQL connection string.
|
|
Constructor. Sets up connection based on PostgreSQL connection string.
|
|
Destructor. Implicitly closes the connection.
|
|
Explicitly activate deferred or deactivated connection. Use of this method is entirely optional. Whenever a connection is used while in a deferred or deactivated state, it will transparently try to bring itself into an actiaveted state. This function is best viewed as an explicit hint to the connection that "if you're not in an active state, now would be a good time to get into one." Whether a connection is currently in an active state or not makes no real difference to its functionality. There is also no particular need to match calls to Activate() with calls to Deactivate(). A good time to call Activate() might be just before you first open a transaction on a lazy connection. |
|
Process ID for backend process. Use with care: connections may be lost and automatically re-established without your knowledge, in which case this process ID may no longer be correct. You may, however, assume that this number remains constant and reliable within the span of a successful backend transaction. If the transaction fails, which may be due to a lost connection, then this number will have become invalid at some point within the transaction. |
|
To be used by implementation classes: really connect to database.
|
|
Name of database we're connected to, if any.
|
|
Explicitly deactivate connection. Like its counterpart Activate(), this method is entirely optional. Calling this function really only makes sense if you won't be using this connection for a while and want to reduce the number of open connections on the database server. There is no particular need to match or pair calls to Deactivate() with calls to Activate(), but calling Deactivate() during a transaction is an error. |
|
Explicitly close connection.
|
|
|
|
Check for pending trigger notifications and take appropriate action.
|
|
Address of server (NULL for local connections).
|
|
Is this connection open?
|
|
Full connection string as used to set up this connection.
|
|
Perform the transaction defined by a Transactor-based object. The function may create and execute several copies of the Transactor before it succeeds. If there is any doubt over whether it succeeded (this can happen if the connection is lost just before the backend can confirm success), it is no longer retried and an error message is generated.
|
|
Server port number we're connected to.
|
|
Invoke notice processor function. The message should end in newline.
|
|
Invoke notice processor function. The message should end in newline.
|
|
Set client-side character encoding. Search the PostgreSQL documentation for "multibyte" or "character set encodings" to find out more about the available encodings, how to extend them, and how to use them. Not all server-side encodings are compatible with all client-side encodings or vice versa.
|
|
Set handler for postgresql errors or warning messages. Return value is the previous handler. Ownership of any previously set Noticer is also passed to the caller, so unless it is stored in another auto_ptr, it will be deleted from the caller's context. This may be important when running under Windows, where a DLL cannot free memory allocated by the main program. If a Noticer is set when the Connection_base is destructed, it will also be deleted.
|
|
Set session variable. Set a session variable for this connection, using the SET command. If the connection to the database is lost and recovered, the last-set value will be restored automatically. See the PostgreSQL documentation for a list of variables that can be set and their permissible values. If a transaction is currently in progress, aborting that transaction will normally discard the newly set value. Known exceptions are NonTransaction (which doesn't start a real backend transaction) and PostgreSQL versions prior to 7.3.
|
|
Enable tracing to a given output stream, or NULL to disable.
|
|
Database user ID we're connected under, if any.
|
|
|
|
Variables set in session.
|
|
|