diff options
Diffstat (limited to 'src/interfaces/libpq++/pgconnection.cc')
| -rw-r--r-- | src/interfaces/libpq++/pgconnection.cc | 138 |
1 files changed, 70 insertions, 68 deletions
diff --git a/src/interfaces/libpq++/pgconnection.cc b/src/interfaces/libpq++/pgconnection.cc index 074a6bdc43..5b61ff636a 100644 --- a/src/interfaces/libpq++/pgconnection.cc +++ b/src/interfaces/libpq++/pgconnection.cc @@ -1,19 +1,19 @@ /*------------------------------------------------------------------------- - * - * FILE - * pgconnection.cc - * - * DESCRIPTION - * implementation of the PgConnection class. - * PgConnection encapsulates a frontend to backend connection - * - * Copyright (c) 1994, Regents of the University of California - * - * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgconnection.cc,v 1.14 2002/06/15 18:49:29 momjian Exp $ - * - *------------------------------------------------------------------------- - */ +* +* FILE +* pgconnection.cc +* +* DESCRIPTION +* implementation of the PgConnection class. +* PgConnection encapsulates a frontend to backend connection +* +* Copyright (c) 1994, Regents of the University of California +* +* IDENTIFICATION +* $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgconnection.cc,v 1.15 2002/07/02 16:32:19 momjian Exp $ +* +*------------------------------------------------------------------------- +*/ #include "pgconnection.h" @@ -28,44 +28,46 @@ using namespace std; // **************************************************************** // default constructor -- initialize everything PgConnection::PgConnection() - : pgConn(NULL), pgResult(NULL), pgCloseConnection(false) + : pgConn(NULL), pgResult(NULL), pgCloseConnection(false) {} // constructor -- checks environment variable for database name // Now uses PQconnectdb + PgConnection::PgConnection(const char* conninfo) - : pgConn(NULL), pgResult(NULL), pgCloseConnection(true) + : pgConn(NULL), pgResult(NULL), pgCloseConnection(true) { - // Connect to the database - Connect(conninfo); + // Connect to the database + Connect(conninfo); } // destructor - closes down the connection and cleanup PgConnection::~PgConnection() { - // Close the connection only if needed - // This feature will most probably be used by the derived classes that - // need not close the connection after they are destructed. - CloseConnection(); + // Close the connection only if needed + // This feature will most probably be used by the derived classes that + // need not close the connection after they are destructed. + CloseConnection(); } // PgConnection::CloseConnection() // close down the connection if there is one -void PgConnection::CloseConnection() +void PgConnection::CloseConnection() { - // if the connection is open, close it first - if (pgCloseConnection) { - if (pgResult) - PQclear(pgResult); - pgResult = NULL; - if (pgConn) - PQfinish(pgConn); - pgConn = NULL; - pgCloseConnection = false; - } + // if the connection is open, close it first + if (pgCloseConnection) + { + if (pgResult) + PQclear(pgResult); + pgResult = NULL; + if (pgConn) + PQfinish(pgConn); + pgConn = NULL; + pgCloseConnection = false; + } } @@ -73,40 +75,40 @@ void PgConnection::CloseConnection() // establish a connection to a backend ConnStatusType PgConnection::Connect(const char conninfo[]) { - // if the connection is open, close it first - CloseConnection(); + // if the connection is open, close it first + CloseConnection(); + + // Connect to the database + pgConn = PQconnectdb(conninfo); - // Connect to the database - pgConn = PQconnectdb(conninfo); + // Now we have a connection we must close (even if it's bad!) + pgCloseConnection = true; - // Now we have a connection we must close (even if it's bad!) - pgCloseConnection = true; - - // Status will return either CONNECTION_OK or CONNECTION_BAD - return Status(); + // Status will return either CONNECTION_OK or CONNECTION_BAD + return Status(); } // PgConnection::status -- return connection or result status ConnStatusType PgConnection::Status() const { - return PQstatus(pgConn); + return PQstatus(pgConn); } // PgConnection::exec -- send a query to the backend ExecStatusType PgConnection::Exec(const char* query) { - // Clear the result stucture if needed - if (pgResult) - PQclear(pgResult); - - // Execute the given query - pgResult = PQexec(pgConn, query); - - // Return the status - if (pgResult) - return PQresultStatus(pgResult); - else - return PGRES_FATAL_ERROR; + // Clear the result stucture if needed + if (pgResult) + PQclear(pgResult); + + // Execute the given query + pgResult = PQexec(pgConn, query); + + // Return the status + if (pgResult) + return PQresultStatus(pgResult); + else + return PGRES_FATAL_ERROR; } // Return true if the Postgres command was executed OK @@ -125,34 +127,34 @@ int PgConnection::ExecTuplesOk(const char* query) // PgConnection::notifies() -- returns a notification from a list of unhandled notifications PGnotify* PgConnection::Notifies() { - return PQnotifies(pgConn); + return PQnotifies(pgConn); } // From Integer To String Conversion Function string PgConnection::IntToString(int n) { - char buffer [4*sizeof(n) + 2]; - sprintf(buffer, "%d", n); - return buffer; + char buffer [4*sizeof(n) + 2]; + sprintf(buffer, "%d", n); + return buffer; } bool PgConnection::ConnectionBad() const -{ - return Status() == CONNECTION_BAD; +{ + return Status() == CONNECTION_BAD; } const char* PgConnection::ErrorMessage() const -{ - return (const char *)PQerrorMessage(pgConn); +{ + return (const char *)PQerrorMessage(pgConn); } - + const char* PgConnection::DBName() const -{ - return (const char *)PQdb(pgConn); +{ + return (const char *)PQdb(pgConn); } PQnoticeProcessor PgConnection::SetNoticeProcessor(PQnoticeProcessor proc, void *arg) { - return PQsetNoticeProcessor(pgConn, proc, arg); + return PQsetNoticeProcessor(pgConn, proc, arg); } |
