[pgsql-jp: 26085] 7.2 ODBC ドライバで SQL_DESC_OCTET_LENGTH を取得すると 0 になる。
Tetsuya Kakura
kakura @ saki.netwk.ntt-at.co.jp
2002年 5月 23日 (木) 14:46:08 JST
こんにちは。
加倉です。
PostgreSQL 7.2.1 用の ODBC ドライバの SQLColAttribute で以下の様な現象が起きていま
す。これは不具合のような気がしますがどうでしょう?
■現象
- VARCHAR(40) の列の OCTET LENGTH に 0 が返される。
- OCTET_LENGTH の取得は SQLColAttribute で SQL_DESC_OCTET_LENGTH を指定しています。
SQLRETURN は SQL_SUCCESS が返されています。
※参考までに、Column Size, Display Size は各々 40 と 40 が返されています。
■加倉の認識
- PostgreSQL 7.2.1 では VARCHAR は文字単位になっているので、OCTET LENGTH (転送に必
要なバッファのバイトサイズ)は、EUC_JP の場合 2(または3)×ColumnSize が戻らなけれ
ばならないと思うのですが・・・
■確認した環境
OS : Solaris 2.6
PostgreSQL: 7.2.1
configure option: --enable-multibyte --enable-odbc --odbc-unixodbc --with-unixodbc
ODBC Driver: 7.2.1 添付のドライバ
ODBC Manager: unixODBC 2.1
使用しているDBのコーディング: EUC_JP
■補足
- 開発中のプログラムは PostgreSQL 7.2.1 以外の ODBC Driver にも対応しますので、
『ColumnSize× 2(または3)』のロジックをプログラムに埋め込むわけに行かないので
OCTET_LENGTH を取得できる方法が欲しいのです。
宜しくお願いします。
--
Tetsuya Kakura / kakura @ saki.netwk.ntt-at.co.jp
pgsql-jp メーリングリストの案内