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文字とカウントされているようです。
参考ページなどありましたら教えてください。あ
ちょっと、バージョンが違うみたいだけど、参考になると思います。
ここ(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'
あとは、ソースコードを。