Thanks for the info guys, but it doesnt seem to have solved the problem.

I updated my procedure to :

      <procedure id="languageLookup"  parameterMap="languageLookupMap"
resultClass="java.lang.String">
             {call language_lookup @from_text = ?, @language = ?}
      </procedure>


Now I get the following stack trace:


com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in sqlmap/TestSqlMap.xml.
--- The error occurred while applying a parameter map.
--- Check the TestNameSpace.languageLookupMap.
--- Check the results (failed to retrieve results).
--- Cause: java.lang.NullPointerException
Caused by: java.lang.NullPointerException
      at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:188)
      at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:123)
      at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:610)
      at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:584)
      at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:101)
      at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:78)
      at test.TestStoredProcCall.main(TestStoredProcCall.java:23)



Any ideas?

andy





                                                                                
                                                            
                      Larry Meadors                                             
                                                            
                      <[EMAIL PROTECTED]        To:       
user-java@ibatis.apache.org                                                     
   
                      ail.com>                 cc:                              
                                                            
                                               Subject:  Re: SQLMaps - Sybase 
and stored procedures                                         
                      09/08/2005 12:01                                          
                                                            
                      Please respond to                                         
                                                            
                      user-java                                                 
                                                            
                                                                                
                                                            
                                                                                
                                                            




It's true: Without a resultMap or resultClass, your results will be
silently discarded.

Larry


On 8/9/05, Priyesh Mashelkar <[EMAIL PROTECTED]> wrote:
> Use a resultMap or resultClass as you would do for a normal query.
> They have missed mention of procedures returning values in their
documentation.
>
> Your mapping would look like:
>
> <parameterMap id="languageLookupMap" class="java.util.HashMap">
>       <parameter javaType="java.lang.String" mode="IN" jdbcType="VARCHAR"
> property="from_text"/>
>       <parameter javaType="java.lang.String" mode="IN" jdbcType="VARCHAR"
> property="language"/>
> </parameterMap>
>
> <procedure id="languageLookup"  parameterMap="languageLookupMap"
resultClass="java.lang.String">
>       {call language_lookup @from_text = ?, @language = ?}
> </procedure>
>
> The call remains the same. i.e.,       {call language_lookup @from_text =
?, @language = ?}.
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, August 09, 2005 4:21 PM
> To: user-java@ibatis.apache.org
> Subject: SQLMaps - Sybase and stored procedures
>
>
> Hi,
>
> I have a question regarding the use of stored procedures (in particular
> Sybase) with SQLMaps.
> Having looked at the documentation I am still unsure as the
documentation,
> unless I have missed it, doesnt deal with getting results back from
> the proc.
>
> I wish to call a Sybase stored procedure, passing into two parameters and
> retrieving a String value in a resultset.
> The proc, which provides a language translation, takes two String
> parameters (the text you wish translated, and the language
> you wish translated to) and then returns a String value of the translated
> text.
>
>
>
> My sqlmap is as follows:
>
> <parameterMap id="languageLookupMap" class="java.util.HashMap">
>       <parameter javaType="java.lang.String" mode="IN" jdbcType="VARCHAR"
> property="from_text"/>
>       <parameter javaType="java.lang.String" mode="IN" jdbcType="VARCHAR"
> property="language"/>
> </parameterMap>
>
> <procedure id="languageLookup"  parameterMap="languageLookupMap">
>       {call language_lookup @from_text = ?, @language = ?}
> </procedure>
>
>
>
> My code is as follows:
>
> HashMap map = new HashMap();
> map.put("from_text", "Computers");
> map.put("language", "FRE");
>
> ArrayList results = (ArrayList) sqlMap.queryForList("testLanguageLookup",
> map);
> iter = results.iterator();
> System.out.println("results = " + results.toString());
>
>
> When I run the code, the output is always "result = []".
>
>
>
>
>
> However, if I run the following regular jdbc code, I get a valid result:
>
> CallableStatement cstmt = conn.prepareCall("{call language_lookup
> @from_text = 'Computers', @language = 'FRE'}");
> ResultSet rs = cstmt.executeQuery();
>
> System.out.println("Resultset = " + rs.toString());
> rs.next();
> String output = (String) rs.getString(1);
> System.out.println("Output = " + output);
>
>
>
> The output is ----->
>
> Resultset = [EMAIL PROTECTED]
> Output = Ordinateurs
>
>
>
>
> Can anyone give me some tips to get the same eresults with SQLMaps as I
get
> with regular jdbc code?
>
> Thanks in advance,
> andy
>
>
>
>
> MASTEK
> "Making a valuable difference"
> Mastek in NASSCOM's 'India Top 20' Software Service Exporters List.
> In the US, we're called MAJESCO
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

> Opinions expressed in this e-mail are those of the individual and not
that of Mastek Limited, unless specifically indicated to that effect.
Mastek Limited does not accept any responsibility or liability for it. This
e-mail and attachments (if any) transmitted with it are confidential and/or
privileged and solely for the use of the intended person or entity to which
it is addressed. Any review, re-transmission, dissemination or other use of
or taking of any action in reliance upon this information by persons or
entities other than the intended recipient is prohibited. This e-mail and
its attachments have been scanned for the presence of computer viruses. It
is the responsibility of the recipient to run the virus check on e-mails
and attachments before opening them. If you have received this e-mail in
error, kindly delete this e-mail from all computers.
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

>
>



Reply via email to