LinuxにインストールしたpostgreSQLをpsqlODBC ANSIを介してVB6から使用しています。


postgreSQLバージョン:8.3.7
databaseのエンコード:EUC-JP
psqlODBCバージョン:8.03.04.00

現在あるテーブルのあるカラムHOGEにvarchar(200)を指定しています。
ここにVB6で作成されたアプリケーションよりインサートを実行したときの、以下の減少について質問です。

postgreSQLのvarchar(n)の「n」は、文字数の意味であり、「あああ」も「aaa」も同じく「3」と判定される認識です。
ところが、HOGE列に対し「ああああ・・・(200文字)」をインサートすると失敗してしまいます。
psqlODBC Unicode版を使用するとインサートに成功します。

半角の「aaaa・・・(200文字)」のインストールには成功します。おそらくマルチバイト文字1つで2文字とカウントされているようです。

参考ページなどありましたら教えてください。あ

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/09/16 15:55:03

回答1件)

id:mass3 No.1

回答回数118ベストアンサー獲得回数15

ちょっと、バージョンが違うみたいだけど、参考になると思います。

ここ(http://www.ne.jp/asahi/inocchichichi/entrance/psqlodbc/index.html)に、

以下のように書いてあります。

You don't have to set any client encoding in case of Unicode driver.

If you have to handle a multibyte encoding using ANSI driver, tell the client_encoding to

the driver by specifying the client encoding per DSN.

Please set the Connect Settings options like

set client_encoding to 'XXXX'

あとは、ソースコードを。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません