nvarcharのデータが途切れます。 – プログラミング – Home

nvarcharのデータが途切れます。
 
通知
すべてクリア

[解決済] nvarcharのデータが途切れます。


ひまわり
 ひまわり
(@ひまわり)
ゲスト
結合: 22年前
投稿: 7
Topic starter  

VC++6.0でSQLServer7.0のnvarchar(255)のデータが取得できません。
ODBCドライバは3.XXです。

データはCRecordsetオブジェクトのDoFieldExchangeでマッピング
しており、色々試して見ましたがダメでした。
以下すべて264byteまでしか取得できません。

RFX_Text(pFX, _T([VALUE]), m_VALUE, 512, SQL_WVARCHAR)
RFX_Text(pFX, _T([VALUE]), m_VALUE, INT_MAX)

DAOで似たようなバグがあったので、ODBCも調べているのですが
それらしき対策をみつけることもできず。。。。困っています。

どんなことでも構いません。なにか知っていることがあったら教えて下さい。
お願いします。


引用未解決
トピックタグ
Fly
 Fly
(@Fly)
ゲスト
結合: 22年前
投稿: 11
 

はじめまして。Flyといいます。

少し気になったんですが、DB上の255Byte目は
MBCS(マルチバイトキャラセット)で入ってますか?


返信引用
ひまわり
 ひまわり
(@ひまわり)
ゲスト
結合: 22年前
投稿: 7
Topic starter  

Flyさん、返事ありがとうございます。
DB上の255Byte目はおそらくMBCS(マルチバイトキャラセット)で入って
いると思います。

マイクロソフト サポート技術情報の英語版にODBCのバグとして発見しました。

http://support.microsoft.com/default.aspx?scid=kb;en-us;293659
VC++5.0の場合は↓も該当
http://support.microsoft.com/default.aspx?scid=kb;en-us;182386

また、RFX_Textの中をデバッグしていくと以下の記述のあたりは
SQL_WVARCHARに対応できていませんでした。。。。とほほ。
AFX_SQL_SYNC(::SQLBindCol(pFX->m_prs->m_hstmt, (UWORD)nField,
SQL_C_CHAR, pvData, cbColumn, plLength));

結局 RFX_Text をコピー/改造してnvarcharの部分だけ独自のものを
呼出すようにし、解決しました。

p.s. 英語版の文献にはバグがいっぱい!?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました