2012-02-23 7 views
0

У меня есть оператор обновления sql, но я не понимаю, почему он не обновляет мои записи, он просто ничего не делает, что-то не так с синтаксисом?Заявление об обновлении SQL без изменения записи

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

Это очень сбивает с толку, потому что нет никакой ошибки дано, оно выполняет обновление, но ничего не меняет в базе данных.

Edit:

Вот запрос выполняется:

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

Вы уверены, что привязываете правильное значение идентификатора (т. Е. Оно существует в базе данных)? – GriffeyDog

ответ

2

Вы должны либо вызвать dbConnection.setAutoCommit(true);перед темexecuteUpdate() или dbConnection.commit();после в executeUpdate()

Если dbConnection.getAutoCommit() возвращает истину, то вы испытываете другую ошибку. Вы уверены, что не выбрасывает Exception?

+0

Извините, я собрал код вместе для вопроса. Все нормально с dbconnection, потому что другие запросы работают нормально. И да нет никаких исключений, это очень странно. Большую часть времени он обновляет и ничего не делает, но иногда он даст ошибку тайм-аута sql. – Ross

+0

Похоже, что ваша БД может быть странной. Вы пытались запустить запрос в БД напрямую с помощью утилиты? –

Смежные вопросы