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

解決済みの質問

Java環境で使用するAccessデータベースについて

以下の様な開発環境でシステムを構築しています。
OS:windowsXP
DB:Microsoft Access 2002
j2sdk:1.4.2_05
Tomcat:4.1.30

Web上で登録画面を表示、登録されたデータをサーブレット経由でDBに登録しようとしたところ、「パラメータが少なすぎます」というメッセージが出て登録できませんでした。
DBおよびSQL構文のエリア名の記入ミスも調べましたが問題ない模様です。
AccessのODBCドライバ(MDAC2.5)について調べたところ、MDAC2.5を使用したSQL文では二重引用符(”)を文字列リテラルとして使用できないようです。
この問題を回避するよい方法があれば、ぜひ教示願います。

<コーディング内容>
//postされた内容を受け取る
String wkkanri = request.getParameter(“kanri_No”);
String wkroom = request.getParameter(“room_No”);
-------------------------------------------------
//ドライバクラスのロード、DB接続
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
Connection con = DriverManager.getConnection(“jdbc:odbc:syataku”);
Statement stmt = con.createStatement();

//insert用sql文の発行
String sql = “insert into kihon(kanri_No,room_No) values(wkkanri,wkroom)”;
Stmt.executeUpdate(sql);

投稿日時 - 2004-12-10 13:07:59

QNo.1120948

すぐに回答ほしいです

質問者が選んだベストアンサー

クォートが全角なのは記載ミスですよね。

例えば、wkkanri に K001 、wkroom に 101 とか入っている
として、Accessに渡したいSQLは

insert into kihon(kanri_No,room_No) values('K001',101)

になります。
しかしお書きになった内容は

insert into kihon(kanri_No,room_No) values(wkkanri,wkroom)

なので、Access側ではエラーになります。
String sql に連結させて、正しいSQLを動的に作ってあげないと。

String sql = "insert into kihon(kanri_No,room_No) values('" + wkkanri + "'," + wkroom + ")";

とかでは?
DB側の型がわからないので、その辺は自助努力で。

もしくはパラメータバインドと言う方法もありますが、まずは
今のやり方を完遂させた方がよいでしょう。

投稿日時 - 2004-12-10 13:49:29

お礼

 全角なのは、環境が別の為、一旦Wordへ打ってそれを貼り付けてしまったからです。油断しました(汗)
頂いたアドバイスを元に何とかDBへの情報登録が出来るようになりました。
御礼が遅くなりましたが、有難う御座いました。

投稿日時 - 2004-12-24 16:38:04

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

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

回答(1)

あなたにオススメの質問