3

次のコードが与えられます。

PGconn* const conn=PQconnectdbParams(keywords, values, false);
if(! conn || PQstatus(conn)!=CONNECTION_OK){ /* error code? */ }

接続に失敗した場合に、エラー コードを取得して、間違ったパスワードとサーバーのダウンを区別できるようにする方法はありますか。

(エラーメッセージが表示されることはわかっていますが、エラーの原因に応じてエラーの原因に対応できるようにしたいです)。

ありがとう。

4

2 に答える 2

3

そのため、さらに調査を行い、postgre 開発者に尋ねたところ、現在 PQconnectdbParams() からエラー コードを取得することはできないようです。

これは libpq 自体の欠点のようで、内部で検出されたエラー (不明なホスト名など) に SQLState エラー コードを割り当てようとはしません。

これは postgres dev todo リストにあるようですが、優先事項ではありません。

TL;DR: libpq を使用する場合は、テキスト エラー メッセージ (ローカライズされている言語に関係なく) を受け入れることを学んでください。

于 2014-04-30T07:08:57.340 に答える
1

試す...

cout << PQerrorMessage(conn) << endl;
于 2015-09-09T16:38:43.140 に答える