- PR -

Accessへのupdateについて

投稿者投稿内容
ぴろ
常連さん
会議室デビュー日: 2002/12/12
投稿数: 26
投稿日時: 2003-01-06 10:12
JSPでのデータベースアクセスにおきまして、jdbcを使ってのアクセスをしているのですが
updateがうまくできません。下記のような記述で構文エラーが出てきてしまいます。
色々試してみてはいるのですが、何度やってもうまくいきません。どなたかお力を貸してください。お願いします。
【記述】
String sql = "update FileList set" + "num='" + num + "'," + "filename='" + filename + "'," + "date='" + date + "'" + "where num ='" + num + "'";
ぴろ
常連さん
会議室デビュー日: 2002/12/12
投稿数: 26
投稿日時: 2003-01-06 10:15
書き忘れましたが、num,filename,dateはそれぞれrequest.getParameterで引数を受け取っているものとしています。
焼きそば
ベテラン
会議室デビュー日: 2002/11/06
投稿数: 86
お住まい・勤務地: 東京
投稿日時: 2003-01-06 10:16
引用:

ぴろさんの書き込み (2003-01-06 10:12) より:
String sql = "update FileList set" + "num='" + num + "'," + "filename='" + filename + "'," + "date='" + date + "'" + "where num ='" + num + "'";


setの後ろとwhereの前にスペースがないから駄目ってことはないですか?
ぴろ
常連さん
会議室デビュー日: 2002/12/12
投稿数: 26
投稿日時: 2003-01-06 10:42
>焼きそばさん
返信、どうもありがとうございます。
今必要だと思われる個所(ご指摘部含む)にスペースを入れてみたのですが、
相変わらずupdateステートメント構文エラーが出てきます。変更後の文は以下のようになりました。

String sql = "update FileList set " + "num='" + num + "', " + "filename='" + filename + "', " + "date='" + date + "'" + " where num ='" + num + "'";
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2003-01-06 10:57
まずはsqlをログにでも書き出してみて、直接Accessに対して実行してみたら
もうちょっと現象がわかりやすいのではないですか?

ぱっとみて怪しそうなのは以下。
・dateの形式は正しいか
・num列ってCHARだったりVARCHARだったりするか
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2003-01-06 11:01
#あけましておめでとうございます m(_ _)m

最後に ; がいるのではないでしょうか?

String sql = "update FileList set " + "num='" + num + "', " + "filename='" + filename + "', " + "date='" + date + "' where num ='" + num + "';";

ひとまず、実行時にsqlが何になっているかをプリントアウトしてみてから解析すると分かりやすくなりますよ。
ぴろ
常連さん
会議室デビュー日: 2002/12/12
投稿数: 26
投稿日時: 2003-01-06 11:04
>まりりさん
返信、ありがとうございます。
date,num,filenameともすべてString型です。
以下、記述文です。やりたいことは、ブックマークサンプルの改造版なんですけど、
なかなかうまいこと動いてくれません・・・。


String num = request.getParameter("num");
String date = request.getParameter("date");
String filename = request.getParameter("filename");

MyDBAccess db = new MyDBAccess();

db.open();

if(num != null)
{
String sql = "update FileList set " + "num='" + num + "', " + "filename='" + filename + "', " + "date='" + date + "'" + " where num ='" + num + "'";

db.execute(sql);
}

else
{
String sql = "insert into FileList values" + "('" + num + "', '" + filename + "', '" + date + "')";
db.execute(sql);
}
db.close();
焼きそば
ベテラン
会議室デビュー日: 2002/11/06
投稿数: 86
お住まい・勤務地: 東京
投稿日時: 2003-01-06 13:04
引用:

ぴろさんの書き込み (2003-01-06 11:04) より:

String date = request.getParameter("date");
String sql = "update FileList set " + "num='" + num + "', " + "filename='" + filename + "', " + "date='" + date + "'" + " where num ='" + num + "'";




Accessって日付型は#でくくるんだったような気がします。これは関係ないのかな?

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