Thread: libpq: how to retrieve query result?

libpq: how to retrieve query result?

From
Вячеслав Блинников
Date:
I retrieve asynchronous queries results using PQgetResult() which returns NULL not in case of some error, but when results end - so there is no way to know if database responded successfully or there happened some error?
For example, error can happen when column names are miswritten.

Re: libpq: how to retrieve query result?

From
Fredric Fredricson
Date:
On 01/17/2011 09:00 PM, Вячеслав Блинников wrote:
I retrieve asynchronous queries results using PQgetResult() which returns NULL not in case of some error, but when results end - so there is no way to know if database responded successfully or there happened some error?
For example, error can happen when column names are miswritten.
I'm no authority on this but my understanding is that it if PQsendQuery returns "OK" the query was successful (for some definition of "successful").

/Fredric
Attachment

Re: libpq: how to retrieve query result?

From
Dmitriy Igrishin
Date:
Hey

17 января 2011 г. 23:00 пользователь Вячеслав Блинников <slavmfm@gmail.com> написал:
I retrieve asynchronous queries results using PQgetResult() which returns NULL not in case of some error, but when results end - so there is no way to know if database responded successfully or there happened some error?
For example, error can happen when column names are miswritten.
Use PQresultStatus. See also PQresultErrorField.


--
// Dmitriy.


Re: libpq: how to retrieve query result?

From
Tom Lane
Date:
=?KOI8-R?B?99HexdPMwdcg4szJzs7Jy8/X?= <slavmfm@gmail.com> writes:
> I retrieve asynchronous queries results using PQgetResult() which returns
> NULL not in case of some error, but when results end - so there is no way to
> know if database responded successfully or there happened some error?
> For example, error can happen when column names are miswritten.

Huh?  You'll get back a PGresult with error status if the query failed.
NULL implies that you already collected the PGresult and there's nothing
more to do.

            regards, tom lane