Is there a way I can disable prepared statements or somehow use an
alternative to prepared statements for my MS Access adapter?



As near as I can tell the MS Access prepared statements are flaky and
will cause bogus exceptions, as in the attached case  where MS Access
reports: "Too few parameters. Expected 36."



--
Øyvind Harboe
http://www.zylin.com
58486 [SocketListener0-8] INFO  org.objectstyle.cayenne.access.QueryLogger  - 
SELECT t0.TREAT_ACTIONDESC, t0.TREAT_CORRECTIVEDESC, t0.TREAT_DESC, 
t0.TREAT_ENTEREDBYCONTACT, t0.TREAT_ENTEREDDATE, t0.TREAT_LIMITDATE, 
t0.TREAT_NO, t0.TREAT_PARENTID, t0.TREAT_QUALITYTYPE, t0.TREAT_REFINT, 
t0.TREAT_REPORTEDDATE, t0.TREAT_SOURCETYPE, t0.TREAT_UPDATEDDATE, 
t0.TREAT_TREATASPECID, t0.TREAT_CRITID, t0.TREAT_ELCSTATUSID, 
t0.treat_causedcontact, t0.treat_treatcontact, t0.TREAT_ID, t0.TREAT_ENTEREDBY, 
t0.freq_id, t0.TREAT_INCIDID, t0.TREAT_PROID, t0.TREAT_REPORTEDBYCONPER, 
t0.TREAT_REPORTEDBYCONTACT, t0.TREAT_RESPONSIBLECONTACT, t0.TREAT_TREATROLE, 
t0.sev_id, t0.TREAT_SYSORGUNITID, t0.TREAT_TREATUSER, t0.TREAT_TREATCSPECID 
FROM TREATMENT t0, ELC_STATUS t1, TREAT_AREASPEC t2, TREAT_AREASPECROOT t3 
WHERE t0.TREAT_ELCSTATUSID = t1.ELCSTATUS_ID AND t0.TREAT_TREATASPECID = 
t2.TREATASPEC_ID AND t2.TREATASPECR_ID = t3.TREATASPECR_ID AND 
(((t1.ELCSTATUS_PROGVALUE = ?) OR (t1.ELCSTATUS_PROGVALUE = ?)) AND 
(t3.TREATASPECR_TREATELCROLEID IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)) AND 
((t0.treat_treatcontact IS NULL) OR (t0.treat_treatcontact IN (?, ?, ?, ?, ?, 
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?))) AND ((t0.TREAT_TREATASPECID <> 
?) OR (t0.TREAT_TREATASPECID IS NOT NULL)) AND ((t0.TREAT_TREATASPECID IS NULL) 
OR (t0.TREAT_TREATASPECID IS NOT NULL)) AND (t1.TREAT_ELCSTATUSID = ?)) ORDER 
BY t0.TREAT_NO DESC [bind: 'undertreatment', 'treatmentcompletedopen', 
'0636F7A4-006B-4926-873F-B5CF888F239C', 'E5DED96B-5F93-4575-85A4-1C14D94B9744', 
'48461B6C-791B-11d4-8792-00508BCE14E0', '04190624-7503-11d4-9078-00508BD89D95', 
'04190625-7503-11d4-9078-00508BD89D95', '07AF23BD-7DCA-41cc-9268-A4A08CF0B2DF', 
'A5E8553F-BB4D-4158-BA53-D8F206817938', 'A5F7E0D8-E204-478f-A7A4-DCC07C712673', 
'AEBEDF2E-2656-4733-99A7-2EAC231DE379', 'B90B4CCB-43EA-4187-B139-4138041A2F8D', 
'E17775E2-897A-41d3-8CC0-D96E24E15DE7', '39FF0F5C-8D2D-468a-BACD-8CB77647F87A', 
'ECCB2AFA-40E1-42eb-9C15-8BD725656A78', '5XW2E8Q4REREJ93GON3J5PNEKEHG04D85G53', 
'7F32C61C-D687-4e8e-BECC-2F2FE4FA1CEC', '99F6E01D-16A9-4cb2-8217-50C8AF0CB64F', 
'99F6E01D-16A9-4cb2-8217-50C8AF0CB64F', '99F6E01D-16A9-4cb2-8217-50C8AF0CB64F', 
'99F6E01D-16A9-4cb2-8217-50C8AF0CB64F', '99F6E01D-16A9-4cb2-8217-50C8AF0CB64F', 
'99F6E01D-16A9-4cb2-8217-50C8AF0CB64F', '1CADB577-0E64-459E-AD68-BE2F7653CB40', 
'5XW2E8Q4REREJ93GON3J5PNEKEHG04D85G53', '99F6E01D-16A9-4cb2-8217-50C8AF0CB64F', 
'7F32C61C-D687-4e8e-BECC-2F2FE4FA1CEC', '99F6E01D-16A9-4cb2-8217-50C8AF0CB64F', 
'99F6E01D-16A9-4cb2-8217-50C8AF0CB64F', '39064AF2-EE5E-404e-9FD2-1C21A68A9E54', 
'C0B23DD1-263C-4016-AE60-2FEEA354444F', '7F32C61C-D687-4e8e-BECC-2F2FE4FA1CEC', 
'5XW2E8Q4REREJ93GON3J5PNEKEHG04D85G53', '', 'STATUSEN']
58548 [SocketListener0-8] INFO  org.objectstyle.cayenne.access.QueryLogger  - 
*** error.
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few 
parameters. Expected 36.
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
        at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
        at sun.jdbc.odbc.JdbcOdbc.SQLExecute(Unknown Source)
        at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(Unknown Source)
        at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeQuery(Unknown Source)
        at 
org.objectstyle.cayenne.access.jdbc.SelectAction.performAction(SelectAction.java:108)
        at 
org.objectstyle.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:95)
        at 
org.objectstyle.cayenne.access.DataNode.performQueries(DataNode.java:309)
        at 
org.objectstyle.cayenne.access.DataDomainLegacyQueryAction.execute(DataDomainLegacyQueryAction.java:117)
        at 
org.objectstyle.cayenne.access.DataDomain$1.transform(DataDomain.java:745)
        at 
org.objectstyle.cayenne.access.DataDomain.runInTransaction(DataDomain.java:846)
        at 
org.objectstyle.cayenne.access.DataDomain.performQueries(DataDomain.java:742)
        at 
org.objectstyle.cayenne.access.DataContext.internalPerformIteratedQuery(DataContext.java:1356)
        at 
org.objectstyle.cayenne.access.DataContext.performIteratedQuery(DataContext.java:1322)
        at 
org.objectstyle.cayenne.access.IncrementalFaultList.fillIn(IncrementalFaultList.java:226)
        at 
org.objectstyle.cayenne.access.IncrementalFaultList.<init>(IncrementalFaultList.java:192)
        at 
org.objectstyle.cayenne.access.DataContextQueryAction.interceptPaginatedQuery(DataContextQueryAction.java:128)
        at 
org.objectstyle.cayenne.access.DataContextQueryAction.execute(DataContextQueryAction.java:86)
        at 
org.objectstyle.cayenne.access.DataContext.onQuery(DataContext.java:1422)
        at 
org.objectstyle.cayenne.access.DataContext.performQuery(DataContext.java:1411)
        at 
com.zylin.payback.app.reports.TreatmentSearchExp.refresh(TreatmentSearchExp.java:76)
        at 
com.zylin.payback.app.html.BuildReportQuery.submit(BuildReportQuery.java:185)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at 
org.apache.tapestry.listener.ListenerMap.invokeTargetMethod(ListenerMap.java:257)
        at 
org.apache.tapestry.listener.ListenerMap.access$100(ListenerMap.java:46)
        at 
org.apache.tapestry.listener.ListenerMap$SyntheticListener.invoke(ListenerMap.java:97)
        at 
org.apache.tapestry.listener.ListenerMap$SyntheticListener.actionTriggered(ListenerMap.java:102)
        at org.apache.tapestry.form.Form.renderComponent(Form.java:423)
        at 
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:857)
        at org.apache.tapestry.form.Form.rewind(Form.java:568)
        at 
org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:432)
        at org.apache.tapestry.form.Form.trigger(Form.java:582)
        at 
org.apache.tapestry.engine.DirectService.service(DirectService.java:169)
        at 
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:889)
        at 
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:198)
        at 
org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:616)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
        at 
com.zylin.payback.app.tapestry.SequentialSessionFilter.doFilter(SequentialSessionFilter.java:27)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
        at 
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
        at 
org.mortbay.jetty.plus.PlusWebAppContext.handle(PlusWebAppContext.java:158)
        at org.mortbay.http.HttpServer.service(HttpServer.java:909)
        at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
        at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
        at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
        at 
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
        at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
        at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
58970 [SocketListener0-8] ERROR com.zylin.payback.app.html.ExceptionPage  - 
org.apache.tapestry.ApplicationRuntimeException: Unable to invoke method submit 
on [EMAIL PROTECTED]: [v.1.2.1 August 30 2006] Error performing query.
org.apache.tapestry.ApplicationRuntimeException: Unable to invoke method submit 
on [EMAIL PROTECTED]: [v.1.2.1 August 30 2006] Error performing query.
        at 
org.apache.tapestry.listener.ListenerMap.invokeTargetMethod(ListenerMap.java:283)
        at 
org.apache.tapestry.listener.ListenerMap.access$100(ListenerMap.java:46)
        at 
org.apache.tapestry.listener.ListenerMap$SyntheticListener.invoke(ListenerMap.java:97)
        at 
org.apache.tapestry.listener.ListenerMap$SyntheticListener.actionTriggered(ListenerMap.java:102)
        at org.apache.tapestry.form.Form.renderComponent(Form.java:423)
        at 
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:857)
        at org.apache.tapestry.form.Form.rewind(Form.java:568)
        at 
org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:432)
        at org.apache.tapestry.form.Form.trigger(Form.java:582)
        at 
org.apache.tapestry.engine.DirectService.service(DirectService.java:169)
        at 
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:889)
        at 
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:198)
        at 
org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:616)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
        at 
com.zylin.payback.app.tapestry.SequentialSessionFilter.doFilter(SequentialSessionFilter.java:27)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
        at 
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
        at 
org.mortbay.jetty.plus.PlusWebAppContext.handle(PlusWebAppContext.java:158)
        at org.mortbay.http.HttpServer.service(HttpServer.java:909)
        at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
        at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
        at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
        at 
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
        at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
        at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
Caused by: org.objectstyle.cayenne.CayenneRuntimeException: [v.1.2.1 August 30 
2006] Error performing query.
        at 
org.objectstyle.cayenne.access.IncrementalFaultList.fillIn(IncrementalFaultList.java:271)
        at 
org.objectstyle.cayenne.access.IncrementalFaultList.<init>(IncrementalFaultList.java:192)
        at 
org.objectstyle.cayenne.access.DataContextQueryAction.interceptPaginatedQuery(DataContextQueryAction.java:128)
        at 
org.objectstyle.cayenne.access.DataContextQueryAction.execute(DataContextQueryAction.java:86)
        at 
org.objectstyle.cayenne.access.DataContext.onQuery(DataContext.java:1422)
        at 
org.objectstyle.cayenne.access.DataContext.performQuery(DataContext.java:1411)
        at 
com.zylin.payback.app.reports.TreatmentSearchExp.refresh(TreatmentSearchExp.java:76)
        at 
com.zylin.payback.app.html.BuildReportQuery.submit(BuildReportQuery.java:185)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at 
org.apache.tapestry.listener.ListenerMap.invokeTargetMethod(ListenerMap.java:257)
        ... 31 more
Caused by: org.objectstyle.cayenne.CayenneException: [v.1.2.1 August 30 2006] 
Error getting ResultIterator: Query Exception:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few 
parameters. Expected 36.
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
        at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
        at sun.jdbc.odbc.JdbcOdbc.SQLExecute(Unknown Source)
        at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(Unknown Source)
        at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeQuery(Unknown Source)
        at 
org.objectstyle.cayenne.access.jdbc.SelectAction.performAction(SelectAction.java:108)
        at 
org.objectstyle.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:95)
        at 
org.objectstyle.cayenne.access.DataNode.performQueries(DataNode.java:309)
        at 
org.objectstyle.cayenne.access.DataDomainLegacyQueryAction.execute(DataDomainLegacyQueryAction.java:117)
        at 
org.objectstyle.cayenne.access.DataDomain$1.transform(DataDomain.java:745)
        at 
org.objectstyle.cayenne.access.DataDomain.runInTransaction(DataDomain.java:846)
        at 
org.objectstyle.cayenne.access.DataDomain.performQueries(DataDomain.java:742)
        at 
org.objectstyle.cayenne.access.DataContext.internalPerformIteratedQuery(DataContext.java:1356)
        at 
org.objectstyle.cayenne.access.DataContext.performIteratedQuery(DataContext.java:1322)
        at 
org.objectstyle.cayenne.access.IncrementalFaultList.fillIn(IncrementalFaultList.java:226)
        at 
org.objectstyle.cayenne.access.IncrementalFaultList.<init>(IncrementalFaultList.java:192)
        at 
org.objectstyle.cayenne.access.DataContextQueryAction.interceptPaginatedQuery(DataContextQueryAction.java:128)
        at 
org.objectstyle.cayenne.access.DataContextQueryAction.execute(DataContextQueryAction.java:86)
        at 
org.objectstyle.cayenne.access.DataContext.onQuery(DataContext.java:1422)
        at 
org.objectstyle.cayenne.access.DataContext.performQuery(DataContext.java:1411)
        at 
com.zylin.payback.app.reports.TreatmentSearchExp.refresh(TreatmentSearchExp.java:76)
        at 
com.zylin.payback.app.html.BuildReportQuery.submit(BuildReportQuery.java:185)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at 
org.apache.tapestry.listener.ListenerMap.invokeTargetMethod(ListenerMap.java:257)
        at 
org.apache.tapestry.listener.ListenerMap.access$100(ListenerMap.java:46)
        at 
org.apache.tapestry.listener.ListenerMap$SyntheticListener.invoke(ListenerMap.java:97)
        at 
org.apache.tapestry.listener.ListenerMap$SyntheticListener.actionTriggered(ListenerMap.java:102)
        at org.apache.tapestry.form.Form.renderComponent(Form.java:423)
        at 
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:857)
        at org.apache.tapestry.form.Form.rewind(Form.java:568)
        at 
org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:432)
        at org.apache.tapestry.form.Form.trigger(Form.java:582)
        at 
org.apache.tapestry.engine.DirectService.service(DirectService.java:169)
        at 
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:889)
        at 
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:198)
        at 
org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:616)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
        at 
com.zylin.payback.app.tapestry.SequentialSessionFilter.doFilter(SequentialSessionFilter.java:27)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
        at 
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
        at 
org.mortbay.jetty.plus.PlusWebAppContext.handle(PlusWebAppContext.java:158)
        at org.mortbay.http.HttpServer.service(HttpServer.java:909)
        at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
        at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
        at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
        at 
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
        at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
        at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)

        at 
org.objectstyle.cayenne.access.util.IteratedSelectObserver.getResultIterator(IteratedSelectObserver.java:104)
        at 
org.objectstyle.cayenne.access.DataContext.internalPerformIteratedQuery(DataContext.java:1357)
        at 
org.objectstyle.cayenne.access.DataContext.performIteratedQuery(DataContext.java:1322)
        at 
org.objectstyle.cayenne.access.IncrementalFaultList.fillIn(IncrementalFaultList.java:226)
        ... 43 more

Reply via email to