обновление даты в MS Access с использованием Spring jdbcTemplate - PullRequest
0 голосов
/ 05 апреля 2011

Я использую MS Access и Spring Jbdc Template.

Где Если я пытаюсь обновить дату в таблице с помощью jdbctemplate, это выдает ошибку

"Caused by: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement."

Это код:

Calendar cal = Calendar.getInstance();
java.sql.Date sqlDate = new java.sql.Date(cal.getTime().getTime());

JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);
int id = jdbcTemplate
   .queryForInt("select TASK_ID from timesheet where task_id=1");
jdbcTemplate.update("update timesheet set date=? where task_id=20",
                     new Object[] { sqlDate });

Заранее спасибо, Сантош

1 Ответ

1 голос
/ 05 апреля 2011

Date - это ключевое слово в Jet (Access db engine), поэтому его нужно "экранировать" в квадратных скобках. Кроме того, литералы даты отделяются #. Я недостаточно знаком с Java, чтобы знать, форматируется ли ваша дата таким образом.

В любом случае ваша строка sql должна выглядеть примерно так:

"update timesheet set [date]=#4/5/2011# where task_id=20"
...