Sorry, I guess this was a Sybase issue...nothing to do with iBatis.
 
To fix this issue, you need to supply the connection with property
IGNORE_DONE_IN_PROC=true
 
JDBC: jdbc:sybase:xxx:host:port?IGNORE_DONE_IN_PROC=true
JNDI: Add/append it to the custom property named customProperties
(SELECT_OPENS_CURSOR=true;IGNORE_DONE_IN_PROC=true)


  _____  

        From: Devine, James 
        Sent: Thursday, June 12, 2008 5:10 PM
        To: [email protected]
        Subject: Null Parameter Checking
        
        

        Hello, 
        I am using iBatis to run Sybase SP's. 

        In our SP's we have logic like this to check required
parameters: 

          if (@id is null) 
          begin 
            select @error = 21000 
            select @message = "Input Argument @id is Null, procedure
terminated." 
            raiserror @error @message 
            return -1 
          end 

        Our sql map looks like this... 
        <parameterMap id="pmap" class="map"> 
          <parameter property="id" javaType="java.lang.Integer"
jdbcType="INTEGER" mode="IN"/> 
        </parameterMap> 

        <procedure id="sp" parameterMap="pmap"> 
          {CALL someSP(?)} 
        </procedure> 

        I was expecting to get a SQLException if a null id was passed
in, but instead, it is returning a result of 1 (I assume to indicate
failure).  2 questions:

        1) Do you know if this can be configured to throw an exception? 

        2) Do you know why this is returning 0 for success and 1 for
failure instead of the impacted row count (as stated in the java doc for
SqlMapExecutor.update())?


        Thanks in advance, 
        Jim 

Reply via email to