Проблема с запросом JDBC-ODBC
Я получаю синтаксическую ошибку при вставке в оператор.
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:3149)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(JdbcOdbcPreparedStatement.java:216)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeUpdate(JdbcOdbcPreparedStatement.java:138)
at com.cron.LockboxReports.execute(Reports.java:174)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:534)
Здесь запрос
String sql2 = "INSERT INTO Report (Age,GoLive,Number,CustomerName,Address,Status,SubStatus,Sqrt,Type,Code,Deposit,filesend,approved,sendtoClient,byClient,fileapproved,TestSetups,Images,ImApproved,ProdSetupsAt,TSApprov,ToClient,ReceivedbyClient,ReceivedApproved,ItemsSent,ItemsApproved,ODsend,Approved,TotalEmail,Verified,fyCut,CodeToProd,CodeToComplete,Request,Complete) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
preparedstatement = con3.prepareStatement(sql2);
//Statement stmt = con3.createStatement();
preparedstatement.setString(1, Age);
....
preparedstatement.executeUpdate();
Я пробовал с запросом выбора, его wokring файл. Так что odbc соединение хорошее. Единственная проблема - запрос... не могли бы вы помочь мне.
1 ответ
Один ? отсутствует в подготовленном выражении. Проверьте запрос на него. В вашей таблице 35 полей и 34?,
String sql2 = "INSERT INTO Report(Age,GoLive,Number,CustomerName,Address,Status,SubStatus,Sqrt,Type,Code,Deposit,filesend,**approved**,sendtoClient,byClient,fileapproved,TestSetups,Images,ImApproved,ProdSetupsAt,TSApprov,ToClient,ReceivedbyClient,ReceivedApproved,ItemsSent,ItemsApproved,ODsend,**Approved**, TotalEmail,Verified,fyCut,CodeToProd,CodeToComplete,Request,Complete) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
В вашей таблице утверждены два столбца с одним и тем же именем, и это является проблемой для ее устранения.
ИСПОЛЬЗОВАТЬ ЭТОТ
preparedstatement stmt= con3.prepareStatement(sql2);
//Statement stmt = con3.createStatement();
stmt.setString(1, Age);
stmt.executeUpdate();