- PR -

JDBC-ODBCブリッジでの日本語データ挿入

1
投稿者投稿内容
下請け
ベテラン
会議室デビュー日: 2002/12/11
投稿数: 50
お住まい・勤務地: 大阪
投稿日時: 2003-02-23 11:22
すみません。
素人みたいな質問ですが・・・

SQL ServerにJDBC−ODBCブリッジドライバ使って日本語のデータを以下のようなSQL文でインサートできません。

SQL文:
INSERT TABLE1 VALUES('ほげほげ','TEST');

JDBC−ODBCブリッジで日本語は扱えないのでしょうか?
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2003-02-23 19:48
引用:

SQL文:
INSERT TABLE1 VALUES('ほげほげ','TEST');

JDBC−ODBCブリッジで日本語は扱えないのでしょうか?




Insert区って
INSERT INTO TABLE_NAME VALUES()
じゃなかったでしょうか
下請け
ベテラン
会議室デビュー日: 2002/12/11
投稿数: 50
お住まい・勤務地: 大阪
投稿日時: 2003-02-24 10:42
返答ありがとうございます。

一応、例のSQL文は正しい構文です。

で、JDBC−ODBCブリッジで日本語項目の更新が出来ない件については結構有名なんですね?

いろんなサイトで調べたらエンコーディングしないといけないようです。

String str = new String(sqlstmt.getBytes("SJIS"), "8859_1");
stmt.executeUpdate(str);

しか〜し、これで一応インサートできましたが日本語が化けるんですよね。
なんででしょう?

エンコーディングの指定が間違っているのでしょうか?

サンプルにしたサイトの例ではこれで上手くいってるみたいですけどね。
うらやましい。
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2003-02-24 11:46
まったく助言になっていませんでした泣

文字化けですか。。。。

JDK1.4では デフォルトでMS932 のコードが使われていたと思います。

ご参考までに。。。
下請け
ベテラン
会議室デビュー日: 2002/12/11
投稿数: 50
お住まい・勤務地: 大阪
投稿日時: 2003-02-24 16:40
SELECT文で検索した場合、逆にエンコーディングすると文字化けして
エンコーディングしなければ正常に取得できました。

ということは、通常はエンコーディングしなくてもインサートできるのか?

JDK1.2.2のJDBC−ODBCブリッジドライバの問題でしょうか?

ちなみにJDK1.4では正常にインサートできました。(エンコーディングなしで)

DBの設定とかODBCドライバーの設定等にも関係がありそうですが。
下請け
ベテラン
会議室デビュー日: 2002/12/11
投稿数: 50
お住まい・勤務地: 大阪
投稿日時: 2003-02-25 10:47
どうやらJDKのバージョンは関係なさそうです。

Windows2000ではJDK1.2.2でも挿入、検索ともに日本語が使えました。
プラットフォームの問題のようですね。

いまどきWindows98もないと思いますが・・・

Javaってプラットフォームに依存する部分も結構あるような気がしますね。
文字コードの問題とか・・・

[ メッセージ編集済み 編集者: スロッター13 編集日時 2003-02-25 10:50 ]
下請け
ベテラン
会議室デビュー日: 2002/12/11
投稿数: 50
お住まい・勤務地: 大阪
投稿日時: 2003-02-25 14:59
すみません。
プラットフォームの問題でもなかったみたいです。

IBM独自仕様のJREが悪さしてるみたいです。

SUNのJRE1.2.2ではOKでした。

(開発はVisualAge for Java 4.0でやってます)

疲れた・・・

1

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