Hi All,

I'm running into an issue that I cannot resolve.  If you can provide any 
assistance, your help would be much appreciated.

The environment consists of Ibatis, along with Apache and Tomcat on Linux 
connecting to a DB2 database on an as400.

Insert statements that once worked, are suddenly failing with the following 
error:


java.sql.SQLException: The number of parameter values set or registered does 
not match the number of parameters.

        com.ibm.as400.access.JDError.throwSQLException(JDError.java:360)

        
com.ibm.as400.access.AS400JDBCPreparedStatement.commonExecuteBefore(AS400JDBCPreparedStatement.java:464)

        
com.ibm.as400.access.AS400JDBCStatement.commonExecute(AS400JDBCStatement.java:631)

        
com.ibm.as400.access.AS400JDBCPreparedStatement.execute(AS400JDBCPreparedStatement.java:726)

        
com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:81)

        
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpdate(GeneralStatement.java:200)

        
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:78)

        
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:505)

        
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:90)

        
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.update(SqlMapClientImpl.java:67)

        
net.diginc.digicon.dao.HomeOfficeAdminDAO.updateContractStatus(HomeOfficeAdminDAO.java:172)

        
net.diginc.digicon.services.HomeOfficeAdminService.abandonContract(HomeOfficeAdminService.java:359)

        
org.apache.jsp.ProcessAbandonContract_jsp._jspService(ProcessAbandonContract_jsp.java:65)

        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)

        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

        
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)

        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)

        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)

        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


Here is the DAO insert code:

public void updateContractStatus( String contractId, ContractStatus 
contractStatus ) throws Exception
      {
            SqlMapClient sqlMap = FdlicSqlConfiguration.getSqlMapInstance();
            HashMap<String,Object> parameters = new HashMap<String, Object>();
            parameters.put("contractStatusCode", contractStatus.getCode() );
            parameters.put("contractId", contractId );
            sqlMap.update("updateContractStatus", parameters );
      }


Here is the map from the sqlmap:

<parameterMap id="update" class="java.util.Map">
   <parameter property="contractStatusCode"  jdbcType="INTEGER"/>
   <parameter property="contractId"  jdbcType="VARCHAR"/>
</parameterMap>

<update id="updateContractStatus" parameterMap="update">
   update digicon.contract set contractStatusCode = ? where contractId = ?
</update>


It appears to me as though the "?" are not being substituted. Any thoughts 
would be greatly appreciated.

Best Regards,
Robert Krenek




Reply via email to