Обсуждение: URGENT : free result (libpq++ API)

Поиск
Список
Период
Сортировка

URGENT : free result (libpq++ API)

От
"Anagha Joshi"
Дата:

Hi all,

I’m using PG – 7.2.4 on Solaries.

I’m using “libpq++” library as client implementation is coded in “C++”.

 

I’m doing the following :

  1. Making the connection to database by creating new object of “PgDatabase” i.e.

data = new PgDatabase( “ CONNECTION INFO “);

 

  1. Then I execure the query with:

int return = data->Exec( “ THIS IS A SQL QUERY”);

 

My question is ,

How should I clear(free) the result of the query? Need  I close the connection after each query to do that?

I wish to use the same connection for multiple queries.

 

This problem I’ve observed with “libpq++” only not with “libpq With “libpq” APIs the,

“PQexec” API returns “PGresult type pointer with which we can clear with the result of the query with “Pqclear(Pgresult *)” API.

 

Is the same functionality is present in “lipq++” APIs also?

 

Pls. help.

 

Thanks,

Anagha

 

Re: URGENT : free result (libpq++ API)

От
Stephan Szabo
Дата:
On Thu, 21 Aug 2003, Anagha Joshi wrote:

> Hi all,
> I'm using PG - 7.2.4 on Solaries.
> I'm using "libpq++" library as client implementation is coded in "C++".
>
> I'm doing the following :
> 1.    Making the connection to database by creating new object of
> "PgDatabase" i.e.
> data = new PgDatabase( " CONNECTION INFO ");
>
> 2.    Then I execure the query with:
> int return = data->Exec( " THIS IS A SQL QUERY");
>
> My question is ,
> How should I clear(free) the result of the query? Need  I close the
> connection after each query to do that?

It looks to me that PgConnection::Exec clears an existing query result
when it's called.

// 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;
}