- - PR -
テーブルのカラム名称が文字化けする
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-03-10 14:29
初めて投稿します。
今、VB6のプログラムをVB.NET2003に変更しているのですが、VB6でRDOを使用して いたところをVB.NETではODBC.NETに変更しなければいけなくなり、アッパークラス を作成したのですが、カラム名が日本語で作成されているテーブルを抽出すると カラム名が文字化けしてしまい、DataReaderからカラム名を指定して値を取得する ことができません。 ODBCエラーのメッセージにも日本語があると、日本語の部分が文字化けします。 抽出したデータ値は日本語でも文字化けしていません。 Public Function GetValue(ByVal columnName As String) As Object Try If (flgReadOnly) Then Return dataReader(columnName) Else Return myDataset.Tables(0).Rows(cntRow)(columnName) End If Catch ex As Exception Throw ex End Try End Function 開発環境は以下の通りです。 データベース :Informix(Windows版) ODBCドライバー:IBM INFORMIX 3.82 32 BIT(3.82.00.11600) 開発言語 :VB.NET2003 プロバイダー :ODBC.NET Informix Sernet32の設定 CLIENT_LOCALE=ja_jp.sjis-s DB_LOCALE=ja_jp.sjis-s 同じような現象で解決された方はいらっしゃいませんでしょうか。 よろしくお願いします。 |
|
投稿日時: 2005-03-10 21:32
Informixって、カラム名に日本語使って大丈夫なんですか?
utf-8にエンコードする、とかかな? _________________ |
|
投稿日時: 2005-03-11 12:51
カラム名、テーブル名を日本語で作ってますが、大丈夫みたいです。
取得したカラム名を全てのコードページ番号でエンコードしてみましたが、元の文字にはなりませんでした。 |
|
投稿日時: 2005-03-14 18:39
大丈夫みたいって、“みたい”でいいんですか!?→仕様書は確認しましたか?
私はOracleしか知りませんが、Oracleでも使えないことはないですが、ダブルクォーテーションで囲んだ場合、という条件があります。SQL Serverでも、角カッコで囲まないといけないみたいです。同じようなことがないですか? それで、『全てのコードページ番号でエンコードしてみましたが』とだけ書かれてもねぇ。。。Encodeをしたのか、Decodeをしたのか。どうやってEncodeしたのか。byte配列からstringにエンコードしないといけないはずですが、そういう風にしました? ん〜〜〜、DB2とInformixって、違うもの?検索すると、同じところに出てくるんですけど?で、DB2 .NET Data Provider ってものがあるみたいですけど、これは使えないのでしょうか?OLEやODBCよりも、こういうカスタムなものを使う方が、いろいろと便利だと思うのですが。 http://www.ibm.com/search?lv=c&o=20&en=utf&v=14&lang=ja&cc=jp&q=informix+.net+framework&x=6&y=14 _________________ |
1