You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ibatis.apache.org by "Brett Knights (JIRA)" <ib...@incubator.apache.org> on 2007/01/19 20:09:30 UTC
[jira] Created: (IBATIS-385) Setting Out Parameter for Stored
Procedure fails. Error says call "getMoreResults
Setting Out Parameter for Stored Procedure fails. Error says call "getMoreResults
---------------------------------------------------------------------------------
Key: IBATIS-385
URL: https://issues.apache.org/jira/browse/IBATIS-385
Project: iBatis for Java
Issue Type: Bug
Components: SQL Maps
Affects Versions: 2.2.0
Environment: jTDS against MS SQL Server 2000. Java 1.4.2_13
Reporter: Brett Knights
I'm calling getSqlMapClientTemplate().insert on a stored procedure with one output parameter.
<parameterMap id="insertUserParams" class="com.tanner.eda.model.User" >
<parameter property="id" jdbcType="INTEGER" javaType="java.lang.Long" mode="OUT"/>
<parameter property="accountId" jdbcType="INTEGER" javaType="java.lang.Long" mode="IN"/>
...
</parameterMap>
<procedure id="addUser" parameterMap="insertUserParams">
{call tewciWebUser (?,?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}
</procedure>
I've lost the exact error message but it told me that SqlExecutor. executeUpdateProcedure was calling retrieveOutputParameters(request, cs, mappings, parameters, null); before any available record sets or result counts had been cleared.
To fix this I inserted the following at line after cs.execute (line 226 on my copy of the source)
rows = clearResults(cs);
and added the following method to the SqlExecutor:
private int clearResults(Statement stmt) throws SQLException{
int rowCount = 0;
while(true){
if(moveToNextResultsSafely(stmt)){
ResultSet rs = stmt.getResultSet();
if( rs != null){
rs.close();
continue;
}
}
else{
int availRows = stmt.getUpdateCount();
if(availRows >= 0) {
rowCount += availRows;
continue;
}
}
break;
}
return rowCount;
}
executeUpdateProcedure
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira