こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Accessで日本語を使っていると実行時にエラーになる。

Microsoft Accessでデータベースを作成した。そのデータベースを使って、JdbcOdbcDriverでMicrosoft Accessから
値を取得しようとするとテーブル名とフィールド名に日本語を使っているときに以下の部分でエラーになります。
テーブル名とフィールド名には日本語を使いたいのですがどのようにすればよいでしょうか?

String sql = "SELECT * FROM 整理"
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int no = rs.getInt("番号");
}
テーブル名とフィールド名を英語にしたらエラーは消えました。

投稿日時 - 2009-12-02 02:34:46

QNo.5491606

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

Shift_JIS <-> Unicode
だからだめなんじゃないでしょうか?
下記みたいな関数をひとつつくって
static String encode (final String sql, final String charset)
throws UnsupportedEncodingException {
return sql != null ? new String(sql.getBytes(), charset) : null;
}

final String shiftJIS = "Shift_JIS";
String sql = encode("SELECT * FROM 整理", shiftJIS);
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int no = rs.getInt(encode("番号"), shiftJIS);
}

みたいにしたらどうでしょうか。
でも日本語を使う前におなじサイト内からですが
下記も参考にしてみてください。

参考URL:http://oshiete1.goo.ne.jp/qa1827785.html

投稿日時 - 2009-12-04 00:01:53

お礼

回答ありがとうございます。
いままでjavaプログラムの実行結果はNetBeansの出力欄で確認していました。
コマンドプロンプトで確認したら正常に動作しました。

投稿日時 - 2009-12-07 11:37:36

あなたにオススメの質問