Re: libpq: how to get error code (not message)

Lists: pgsql-interfaces
From: X X <junkmbox(at)yahoo(dot)com>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: libpq: how to get error code (not message)
Date: 2004-12-02 03:11:44
Message-ID: 20041202031144.68001.qmail@web51106.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-interfaces

Hello,

I'm writing a client in C++ using the C-library
(libpq) interface to PostgreSQL server.

I would like to know what function to call to obtain
one of the codes listed at

http://www.postgresql.org/docs/7.4/static/errcodes-appendix.html

(I'm aware from other postings that in JDBC it would
be a getSQLState() call, but what if I have to code
the client in C/C++ and use libpq ?)

I found that the error codes are defined in file
errcodes.h under the /server include directory, but
can't find the client-side function that returns them.

Any hints are much appreciated,
Serge


__________________________________
Do you Yahoo!?
Yahoo! Mail - Helps protect you from nasty viruses.
http://promotions.yahoo.com/new_mail


From: Michael Fuhr <mike(at)fuhr(dot)org>
To: X X <junkmbox(at)yahoo(dot)com>
Cc: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: libpq: how to get error code (not message)
Date: 2004-12-02 06:06:48
Message-ID: 20041202060648.GA60984@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-interfaces

On Wed, Dec 01, 2004 at 07:11:44PM -0800, X X wrote:

> I would like to know what function to call to obtain
> one of the codes listed at
>
> http://www.postgresql.org/docs/7.4/static/errcodes-appendix.html

I think you're looking for PQresultErrorField() called with the
fieldcode argument set to PG_DIAG_SQLSTATE.

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/


From: Michael Fuhr <mike(at)fuhr(dot)org>
To: X X <junkmbox(at)yahoo(dot)com>
Cc: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: libpq: how to get error code (not message)
Date: 2004-12-03 01:41:15
Message-ID: 20041203014115.GA5451@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-interfaces

On Thu, Dec 02, 2004 at 03:59:46PM -0800, X X wrote:

> > I think you're looking for PQresultErrorField()
> > called with the
> > fieldcode argument set to PG_DIAG_SQLSTATE.
>
> Thanks for your reply. This is exactly what I was
> looking for, but the libpq documentation does not
> mention it (at least I did not find).

Appendix A says:

All messages emitted by the PostgreSQL server are assigned
five-character error codes that follow the SQL standard's
conventions for "SQLSTATE" codes.

The PQresultErrorField() function is documented in the libpq
"Command Execution Functions" section:

http://www.postgresql.org/docs/7.4/static/libpq-exec.html#AEN20619

The documentation says:

The following field codes are available:
...

PG_DIAG_SQLSTATE
The SQLSTATE code for the error (see Appendix A). Not localizable.
Always present.

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/