Обсуждение: libpq: How to get the error code after a failed PGconn connection
<div dir="ltr"><div class="" itemprop="description">Given the following code.<br /><br />PGconn* const conn=PQconnectdbParams(keywords,values, false);<br />if(! conn || PQstatus(conn)!=CONNECTION_OK){ /* error code? */ }<br/><br /> - In case of a failed connection is there a way to get the error code to be able to distinguish between a (e.g.)bad password and the server being down.<br /><br />(I know I can get the error message, but I want to be able to reactto the cause of the error according to its cause, plus the error message is localized so I can't even scan that forkeywords such as "permission denied").<br /><br /></div><div class="" itemprop="description">ps. I've looked at how psqldoes it, and it seems it just prints the error message and exists.<br /><br />ps. I've tried to take a look at the sourcebut it seems it just sets the status to CONNECTION_BAD no matter the cause of error, then sets a specific error message.<br/><br />Any help appreciated.<br /></div><div class="" itemprop="description"><br />Thanks.</div></div>
Hello World <worldanizer@gmail.com> writes: > Given the following code. > PGconn* const conn=PQconnectdbParams(keywords, values, false); > if(! conn || PQstatus(conn)!=CONNECTION_OK){ /* error code? */ } > - In case of a failed connection is there a way to get the error code to be > able to distinguish between a (e.g.) bad password and the server being down. 1. This question is not really material for the -hackers list. 2. No, I'm afraid. libpq does not currently assign SQLSTATE error codes to errors it detects internally, so even if there were an API for this, it would fail to return anything in a lot of cases. Fixing that is on the TODO list, but it's been there for a long time, so don't hold your breath ... regards, tom lane