Обсуждение: Problem with API (libpq) - detailed error codes

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

Problem with API (libpq) - detailed error codes

От
Adam.Bukla@interia.pl (Adam Bukla)
Дата:
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

Re: Problem with API (libpq) - detailed error codes

От
Tom Lane
Дата:
Adam.Bukla@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

Re: Problem with API (libpq) - detailed error codes

От
Adam.Bukla@interia.pl (Adam Bukla)
Дата:
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