- PR -

テーブルのカラム名称が文字化けする

1
投稿者投稿内容
かつぼん
会議室デビュー日: 2005/03/10
投稿数: 2
投稿日時: 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

同じような現象で解決された方はいらっしゃいませんでしょうか。
よろしくお願いします。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-03-10 21:32
 Informixって、カラム名に日本語使って大丈夫なんですか?

 utf-8にエンコードする、とかかな?
_________________
かつぼん
会議室デビュー日: 2005/03/10
投稿数: 2
投稿日時: 2005-03-11 12:51
カラム名、テーブル名を日本語で作ってますが、大丈夫みたいです。

取得したカラム名を全てのコードページ番号でエンコードしてみましたが、元の文字にはなりませんでした。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)