[pgsql-jp: 26105] Re: 7.2 ODBC ドライバでSQL_DESC_OCTET_LENGTHを取得すると 0 になる。

Hiroshi Inoue Inoue @ tpf.co.jp
2002年 5月 24日 (金) 09:32:35 JST


井上です。
補足です。

> > 転送バッファの最大サイズなら、254
> > で丸める意味はないとおもいますが。
> > OCTET_LENGTH で最大バイト数が分からないと、VARCHAR 型のデータは
> > SQLBindColではデータを取得しずらくなってしまいます。

> 確かにおっしゃるとおりなのですが、ODBCでは254を境に
> SQL_VARCHARからSQL_LONGVARCHARへと別の扱いになって
> しまいます。そして不幸なことにSQL_LONGVARCHARを
> SQL_VARCHARほどうまく扱えないアプリが多いのです。
> VARCHARだから最大文字数に達するデータがあるかどうか
> もあやしい。3倍になるのは最悪のシナリオに過ぎずす
> べてasciiなら1倍ですんでしまう。7.1からの単純コン
> バージョンなら元々バイト数も足りているはずである。
> そもそも7.1迄はそうだったのだし文字数とバイト数を
> 区別しないユーザーもいるだろう。等々を勘案して現在
> の内容にしています。たいしたものをうまないこういう
> 所で悩まなければならないのにはいつもうんざりする
> のですが。

上のように折角苦労してもOCTET_LENGTHを問い合わせない
アプリには意味がありません。例えばMS Accessでリンク
テーブルを表示してもOCTET_LENGTHの問い合わせは行なわ
れません。加倉さんのおっしゃるように254でまるめなく
ても影響はさほどないかも知れません。それにしても
3倍になるというのは気が重いですが。

Hiroshi Inoue
	http://w2422.nsk.ne.jp/~inoue/



pgsql-jp メーリングリストの案内