By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
464,729 Members | 1,145 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 464,729 IT Pros & Developers. It's quick & easy.

Problem with API (libpq) - detailed error codes

P: n/a
Hi!

I started programming PostgreSQL database with libpq API (client
side). It looks very easy, but unexpected I found problem, which I
cannot solve myself.
If function PQexec fails, I can get error code using PQresultStatus.
But returned codes are very generally and do not specify what really
happen. I can get detailed error description using PQerrorMessage
function, but I need detailed error code (number).

For instance, if I create table, I would like to know, that operation
failed because:
- table already exist
- sql syntax error
- invalid columnt type
and so on.

I searched documents about libpq API and even header file
'internal/libpq-int.h' but I didn't found any interesting.

I would be very gracefully for any hint.

Best regards,
Adam Bukla
Nov 22 '05 #1
Share this Question
Share on Google+
3 Replies

P: n/a
ljb
Ad********@interia.pl wrote:
...

If function PQexec fails, I can get error code using PQresultStatus.
But returned codes are very generally and do not specify what really
happen. I can get detailed error description using PQerrorMessage
function, but I need detailed error code (number).

For instance, if I create table, I would like to know, that operation
failed because:
- table already exist
- sql syntax error
- invalid columnt type
and so on.

I searched documents about libpq API and even header file
'internal/libpq-int.h' but I didn't found any interesting.

I would be very gracefully for any hint.


Appendix A of the PostgreSQL 7.4.1 Reference Manual has a list of error
codes (5 digit numbers) and their meanings. You get at the error code
with PQresultErrorField(result, PG_DIAG_SQLSTATE).
Nov 22 '05 #2

P: n/a
Ad********@interia.pl (Adam Bukla) writes:
If function PQexec fails, I can get error code using PQresultStatus.
But returned codes are very generally and do not specify what really
happen. I can get detailed error description using PQerrorMessage
function, but I need detailed error code (number).


Beginning in Postgres 7.4, there are standard SQLSTATE error codes
available (see PQresultErrorField), but older releases do not have them.

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to ma*******@postgresql.org

Nov 22 '05 #3

P: n/a
Hi!

Thanks ljb and Tom Lane - it's exactly what I wanted.
I read documentation to 7.3 so I couldn't find PQresultErrorField function.
I'm suprised, that such necessary functionality exist only in 7.4 version.

Thanks once again,
Adam Bukla
Nov 22 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.