2016-10-12 5 views
0

商標記号(™)をDB2 iSeriesデータベースに保存しようとしています。列のエンコーディングはCCSID 1200を使用し、ネイティブsqlを使用した挿入/選択は問題ありません。 C#で.netデータセットを使用して保存しようとすると、変換エラーが発生します。私が理解している限り、DB2データ・プロバイダーはデフォルトとしてバイナリー形式で送信するので、これはうまくいくはずです。.netデータセットを持つDB2 iSeriesでunicode文字を保存する

ありがとうございました!

+0

などのvarchar型の列に挿入してみてください。 .netデータセットを使用してC#で保存するためのコードスニペットを共有することもできます。 *バイナリ*テキストをUTFタグ付きカラムに送信することは、ほとんどサポートされていません。バイナリと文字の型の間のキャストにはほとんど不可能です。注: 'DB2'タグは汎用的ですが、' DB2i'タグはIBM i用のDB2を識別します。[IBM i5/OS用の古いDB2の場合は、以前はDB2/400として、DB2400タグは同様に]、他のDB2の亜種と区別されます。 – CRPence

+0

私が得る唯一の情報は、「変換エラーが発生しました」というものです。コードは標準のADO.NETデータセットです。何も特別なものはありません。私はSQLがSQL_BINARYとして送られたものであって、カラム自体ではないことを意味しています(少なくともこれはプロバイダのドキュメントに書いてあります)。 – pwblnz

答えて

0

は「* *変換エラー」何がある、メッセージ識別子とテキストで、明示的に定義します。この

insert into jgrun.tmp2  
values x'39'    
+0

何を達成しようとしていますか? 7ビットのASCIIとして数字「9」、EBCDICとして制御文字になります。確かに、それは™商標記号(U + 2122)またはUTF8 0xE2 0x84 0xA2をC#経由でテーブルに挿入するための卑劣な方法ではありませんか? – CRPence

関連する問題