cseでSQLServerにODBC接続してSELECTすると全角文字が途中までしか取

cseSQLServerODBC接続してSELECTすると全角文字が途中までしか取れない件について


まずcseでこんなSQL流してテーブルを創帝する。

CREATE TABLE TEST (
COL1 CHAR(10),
COL2 NVARCHAR(10),
PRIMARY KEY(COL1)
)

それから作ったテーブルをcseで見る。

NVARCHAR(10)と定義したつもりなのにNVARCHAR(20)になってるがな。

更にSQLで見る。(スペシャルサンクス:http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1221537092 のベストアンサーじゃないほう)
SELECT T.name, C.name, Y.name, C.max_length, C.precision, C.scale, C.is_nullable, ISNULL(I.index_id, 0) AS is_pk
FROM sys.tables T
LEFT JOIN sys.columns C ON C.object_id=T.object_id
LEFT JOIN sys.types Y ON Y.system_type_id=C.system_type_id AND Y.user_type_id=C.user_type_id
LEFT JOIN sys.index_columns I ON I.object_id=C.object_id AND I.column_id=C.column_id AND I.index_id=1
WHERE T.type='U' AND T.name='test'
ORDER BY T.name, C.column_id

NVARCHARのmax_lengthはCREATE時の2倍になるが、
この定義情報をcseが勘違いしてNVARCHAR(20)だと思ってしまうでよろしいか。


そしてINSERT。

INSERT INTO TEST VALUES('1234567890', '1234567890')

まあこれは問題ないだろう

続いて全角を入れてみましょう。
INSERT INTO TEST VALUES('234567890', '234567890')

OH!23456しか表示されないYO!

しかし。
SELECT * FROM TEST WHERE COL2 = '23456'

取れない(-、_ー)

SELECT * FROM TEST WHERE COL2 = '234567890'

取れた!ъ( `з゚)

内部的にはちゃんと全部入ってるようで。
5文字しか表示されないのは
cse「NVARCHAR(20)ね、あっSQLServerだからコレ俺勘違いしてるね?正しくはNARCHAR(10)か、よっしゃ10バイト表示するで」
とかそんなふうになってるのでしょうか。特に知る気はしないですが。

結論:cseSQLServerは相性がよろしくない