summaryrefslogtreecommitdiff
path: root/src/interfaces/libpq++/pgconnection.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/libpq++/pgconnection.cc')
-rw-r--r--src/interfaces/libpq++/pgconnection.cc138
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);
}