[ 
http://issues.apache.org/jira/browse/IBATISNET-140?page=comments#action_12367372
 ] 

Gilles Bayon commented on IBATISNET-140:
----------------------------------------

In the unit tests, the swap procedure (prc_SWAP_EMAIL_ADDRESS) has been runned 
with success
                <procedure id="SwapEmailAddresses" parameterMap="swap-params">
                        prc_Swap_Email_Address
                </procedure>
see TestProcedureWithOutputParameters in 
IBatisNet.DataMapper.Test.NUnit.SqlMapTests.Oracle.ProcedureTest.cs

> procedure output parameters do work for oracle provider
> -------------------------------------------------------
>
>          Key: IBATISNET-140
>          URL: http://issues.apache.org/jira/browse/IBATISNET-140
>      Project: iBatis for .NET
>         Type: Bug
>   Components: DataAccess
>     Versions: DataAccess 1.7
>  Environment: windows xp vs .NET C#, Oracle ODP.NET for 10g
>     Reporter: henry lu

>
> I tried email swap example and the result with two emails not swaped.
> I have my code:
> create or replace procedure
> ps_swap_email_address (inout_email_1 in out varchar2, inout_email_2 in out 
> varchar2)
> is
> tmp_e varchar2(120);
> begin
> tmp_e := inout_email_1;
> inout_email_1 := inout_email_2;
> inout_email_2 := tmp_e;
> end;
> /
> <parameterMap id="swap_result" class="System.Collections.Hashtable">
> <parameter property="email_1" column="inout_email_1"/>
> <parameter property="email_2" column="inout_email_2"/>
> </parameterMap>
> <statement id="call_ps_swap_email_address" parameterMap="swap_result">
> call ps_swap_email_address(?,?)
> </statement>
>           string first = "[EMAIL PROTECTED]";
>           string second = "[EMAIL PROTECTED]";
>           Hashtable map = new Hashtable();
>           map.Add("email_1", first);
>           map.Add("email_2", second);
>           sqlMapper.QueryForObject("call_ps_swap_email_address", map);
>           Console.WriteLine("1="+map["email_1"].ToString());
>           Console.WriteLine("2="+map["email_2"].ToString());
> But the results didn't swap the email values.
> If I change the sqlmap.xml file to:
> <parameterMap id="swap_result" class="System.Collections.Hashtable">
> <parameter property="email_1" column="inout_email_1" direction="InputOutput" 
> />
> <parameter property="email_2" column="inout_email_2" direction="InputOutput" 
> />
> </parameterMap>
> I go the following errors:
> Object reference not set to an instance of an object.
>  at IBatisNet.DataMapper.MappedStatements.MappedStatement.RetrieveOutputParame
> ters(RequestScope request, IDalSession session, IDbCommand command, Object 
> resul
> t)
>  at IBatisNet.DataMapper.MappedStatements.MappedStatement.RunQueryForObject(Re
> questScope request, IDalSession session, Object parameterObject, Object 
> resultOb
> ject)
>  at IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObjec
> t(IDalSession session, Object parameterObject, Object resultObject)
>  at IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObjec
> t(IDalSession session, Object parameterObject)
>  at IBatisNet.DataMapper.SqlMapper.QueryForObject(String statementName, Object
> parameterObject)
> -Henry

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to