[pgsql-jp: 37199] Re: PQescapeStringのreturn値について
Tatsuo Ishii
ishii @ sraoss.co.jp
2006年 6月 10日 (土) 08:40:30 JST
石井です.
> 中野と申します。
>
> > 確認してみたところ、当方のクライアントエンコーディング設定が
> >
> > PQexec(conn, "SET CLIENT_ENCODING TO sjis")
> >
> > で行っており、これが元凶でした。
> > 石井さんのサンプルコード通りPQsetClientEncodingで設定したところ、正常動
> > 作しました。
ほう,そうですか?
> 初歩的な質問かもしれないのですが、libpqプログラムでクライアントエンコー
> ディングを設定する場合、PQexec(conn, "SET CLIENT_ENCODING TO ...")ではだ
> めだというのは、常識なのでしょうか?(というのも、知らなかったものですか
> ら。。)
そんなことはないです.
PQexec(conn, "SET CLIENT_ENCODING TO sjis");
で問題ないです.もし本当にこれで駄目だとすると,可能性は三つ.
1) libpqのバージョンが古い.古いバージョンのlibpqでは,確かにSET
CLIENT_ENCODING TO sjisでは駄目なものがあります.
2) コーディングミスでPQexecの実行に失敗している.
3) 実行順序の問題.PQescapeStringの実行前にPQexec(conn, "SET
CLIENT_ENCODING TO sjis")を実行していない.
というところですかね.
--
Tatsuo Ishii
SRA OSS, Inc. Japan
pgsql-jp メーリングリストの案内