2012-02-23 1 views
0

私はSQLのupdate文を持っていますが、なぜレコードが更新されないのかわかりません。何もしません。SQL update文がレコードを変更しない

private static final String strUpdatePerson = 
     "UPDATE APP.PERSON " + 
     "SET FIRSTNAME = ?, " + 
     " LASTNAME = ?, " + 
     " ADDRESS = ?, " + 
     " PHONE = ?, " + 
     " EMAIL = ?, " + 
     " INFO = ? " + 
     "WHERE ID = ?"; 

エラーが発生していないため、更新は実行されますが、データベースには何も変更されないため、非常に混乱します。

編集:

stmtUpdateExistingRecord = dbConnection.prepareStatement(strUpdateCustomer); 


    stmtUpdateExistingRecord.clearParameters(); 
     stmtUpdateExistingRecord.setString(1, record.firstName.toUpperCase()); 
     stmtUpdateExistingRecord.setString(2, record.lastName.toUpperCase()); 
     stmtUpdateExistingRecord.setString(3, record.Address); 
     stmtUpdateExistingRecord.setString(4, record.phoneNumber); 
     stmtUpdateExistingRecord.setString(5, record.email); 
     stmtUpdateExistingRecord.setString(6, record.info); 
     stmtUpdateExistingRecord.setInt(7, record.getID()); 
     stmtUpdateExistingRecord.executeUpdate(); 
+1

どのようにその声明を使用しますか?このステートメントを使用するコードの平和をコミュニティに提供してください。 –

+2

トランザクションがコミットされずにロールバックされることがあります。コードを私たちに教えてください。 –

+0

正しいID値をバインドしていますか(つまり、データベースに存在していますか)。 – GriffeyDog

答えて

2

あなたは、その後、executeUpdate()

dbConnection.getAutoCommit()場合はtrueを返し後executeUpdate()dbConnection.commit();dbConnection.setAutoCommit(true);を呼び出す必要があり、次のいずれか

はここで実行されたクエリです別のエラーが発生しています。あなたはそれがExceptionを投げていないと確信していますか?

+0

申し訳ありませんが、質問のコードをまとめました。他のクエリがうまく動作するので、dbconnectionを使っても問題ありません。はい、例外はありません。それは非常に奇妙です。ほとんどの場合、それは更新され、何もしませんが、時にはSQLタイムアウトエラーが発生します – Ross

+0

あなたのDBのようなサウンドが変わっているかもしれません。あなたはユーティリティを使用して直接DB上でクエリを実行しようとしましたか? –

関連する問題