- PR -

insert時のerrorについて

投稿者投稿内容
あざらし
会議室デビュー日: 2004/12/16
投稿数: 5
投稿日時: 2004-12-16 16:32
テーブル定義やクラスを示さなかったのは自分の落度でした、すみません。
ただソースについてはEdossonさんからのご指摘とおりエラーメッセージの出力を試しました
結果として「DB SQL error」と表示されました

テーブル定義ですが以下のようにしました
loginData( ID char(10) primary key, time varchar(30), user varchar(20) not null))

またLoginDataのクラスは次のようになっています

package srcBeans;
public class LoginData{

private String date;
private String tname;
private String time;
private String userID;


public LoginData(){
}


public LoginData(String date,String tname,String time,String userID){
this.date = date;
this.tname = tname;
this.time = time;
this.userID = userID;


}

//日付
public void setDate(String date){
this.date = date;
}
public String getDate(){
return date;
}
//tname
public void setTname(String tname){
this.tname = tname;
}
public String getTname(){
return tname;
}
//時間帯
public void setTime(String time){
this.time = time;
}
public String getTime(){
return time;
}

/uerID
public void setUserID(String userID){
this.userID = userID;
}
public String getUserID(){
return userID;
}

}
taro
ぬし
会議室デビュー日: 2003/10/20
投稿数: 316
投稿日時: 2004-12-16 16:55
SQLのエラーは、DBからSQLExceptionという形で返されます。
このSQLExceptionにはDBからのメッセージが入っていて、getMessage()やprintStackTrace()を使用すると、出力させることができます。
そのメッセージは、Edossonさんからのご指摘のとおり、
err.printStackTrace();
と書くとシステムエラーのログファイルに書き出されているはずなのですが、何も出ていないですか?
err.printStackTrace(System.out);
と書くと「DB SQL error」が書き出されているのと同じシステムログファイルに書き出されるはずなので、こちらの方が分かりやすいかもしれませんね。
このDBからのメッセージを見るのがSQLエラーの解決の一般的な方法だと思います。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-12-16 16:57
引用:

あざらしさんの書き込み (2004-12-16 16:32) より:
ただソースについてはEdossonさんからのご指摘とおりエラーメッセージの出力を試しました
結果として「DB SQL error」と表示されました


ソースは変更されたのですよね。もしかしてブラウザの画面だけ見ているのですか?
そうではなく、サーバのコンソールなりログファイルなりに出力されているはずです。

アプリケーションサーバについて何も書かれていないので、どこに出力されているかは明示
できませんが。
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2004-12-16 16:59
入れ違いになったようですが、私の、16:30の投稿は読まれましたか?

引用:

問題ありますか?


問題があるから、期待通りに動かないんですよね。

String sqlQuery = "INSERT INTO loginData(ID,time,user) VALUES ( '"+key+"','"+data.getTime()+"','"+data.getUserID()+"')";
statement.executeUpdate(sqlQuery);

が、結果としてどのようなSQL文を生成しているのか、確認してみるべきでしょう。
方法は、ログやコンソールを確認するか、ブラウザに表示するか、
あざらしさんが使える方法で。
引用:

ただソースについてはEdossonさんからのご指摘とおりエラーメッセージの出力を試しました
結果として「DB SQL error」と表示されました


「ありとあらゆるエラーを握りつぶして、『DB SQL error』としか表示しない
プログラミングをしているのは、自分自身である」
ということを自覚してください。
ログやコンソールの確認も忘れずに。
あざらし
会議室デビュー日: 2004/12/16
投稿数: 5
投稿日時: 2004-12-16 17:00
自分なりに何か所か変更してみたところ
無事にinsert出来るようになりました
どの部分がerrorを引き起こしてきたのか
現在調べています
原因が判明次第、報告いたします
数々のアドバイスありがとうございました

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