Author: rgrabowski
Date: Sun Nov 20 10:46:27 2005
New Revision: 345772

URL: http://svn.apache.org/viewcvs?rev=345772&view=rev
Log:
Allow results from statements without resultMap or resultClass attributes to be 
processed. Applied type handler logic to IDataReader fields when elements 
should be returned as an IDictionary or IList.

Modified:
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/ResultClass.xml
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/ResultClass.xml
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/Other.xml
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/ResultClass.xml
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/ResultClass.xml
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/ResultClass.xml
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/ResultClass.xml
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/ResultClass.xml
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/ResultClass.xml
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/ResultClass.xml
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultClassTest.cs
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/ResultClass.xml
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/ResultClass.xml?rev=345772&r1=345771&r2=345772&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/ResultClass.xml
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/ResultClass.xml
 Sun Nov 20 10:46:27 2005
@@ -1,83 +1,116 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 
-<sqlMap namespace="Order" xmlns="http://ibatis.apache.org/mapping"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://ibatis.apache.org
-http://ibatis.apache.org/xsd/SqlMap.xsd";>
+<sqlMap namespace="ResultClass" 
+xmlns="http://ibatis.apache.org/mapping"; 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 
        <statements>    
-               <!--
-               System.InvalidCastException
-               No cast function in Access SQL syntax
-               -->
+       
                <statement id="GetBoolean"
                                        parameterClass="Int"
                                        resultClass="bool" >
                        select CBool('True') from Orders where Order_ID = 
#dummy#
+               </statement>            
+               <statement id="GetBooleanWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetBoolean">
                </statement>    
 
-               <!--
-               System.InvalidCastException
-               No cast function in Access SQL syntax
-               -->
                <statement id="GetByte"
                                        parameterClass="Int"
                                        resultClass="byte" >
                        select CByte(155) from Orders where Order_ID = #value#
-               </statement>    
+               </statement>                    
+               <statement id="GetByteWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetByte">
+               </statement>
                
                <statement id="GetChar"
                                        parameterClass="Int"
                                        resultClass="char" >
                        select 'a' from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetCharWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetChar">
+               </statement>
                
                <statement id="GetDate"
                                        parameterClass="Int"
                                        resultClass="date" >
                        select Order_Date from Orders where Order_ID  = #value#
                </statement>
+               <statement id="GetDateWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDate">
+               </statement>
                                                                        
                <statement id="GetDecimal"
                                        parameterClass="Int"
                                        resultClass="decimal" >
                        select 1.56 from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetDecimalWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDecimal">
+               </statement>
 
                <statement id="GetDouble"
                                        parameterClass="Int"
                                        resultClass="double" >
                        select CDbl(99.5) from Orders where Order_ID= #value#
                </statement>
+               <statement id="GetDoubleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDouble">
+               </statement>
 
                <statement id="GetGuid" parameterClass="Int" resultClass="guid" 
>
                        select {CD5ABF17-4BBC-4C86-92F1-257735414CF4} from 
Orders where Order_ID = #value# 
+               </statement>
+               <statement id="GetGuidWithoutResultClass" parameterClass="Int" 
extends="GetGuid">
                </statement> 
                
                <statement id="GetInt16"
                                        parameterClass="Int"
                                        resultClass="short" >
                        select 32111 from Orders where Order_ID = #value#
+               </statement>
+               <statement id="GetInt16WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt16">
                </statement>    
-               
+                       
                <statement id="GetInt32"
                                        parameterClass="Int"
                                        resultClass="int" >
                        select 999999 from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetInt32WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt32">
+               </statement>
                
                <statement id="GetInt64"
                                        parameterClass="Int"
                                        resultClass="long" >
                        select 9223372036854775800 from Orders where Order_ID = 
#value#
                </statement>
+               <statement id="GetInt64WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt64">
+               </statement>
                
-               <!--
-               System.InvalidCastException
-               -->
                <statement id="GetSingle"
                                        parameterClass="Int"
-                                       resultClass="float" >
+                                       resultClass="double" >
                        select CSng(92233.5) from Orders where Order_ID = 
#value#
                </statement>
+               <statement id="GetSingleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetSingle">
+               </statement>
                                                
                <statement id="GetString"
                                        parameterClass="Int"
@@ -85,6 +118,11 @@
                        select 'VISA'
                        from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetStringWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetString">
+               </statement>
+               
        </statements>
 
 </sqlMap>

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/ResultClass.xml
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/ResultClass.xml?rev=345772&r1=345771&r2=345772&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/ResultClass.xml
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/ResultClass.xml
 Sun Nov 20 10:46:27 2005
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" ?>
+<?xml version="1.0" encoding="UTF-8" ?>
 
 <sqlMap namespace="ResultClass" xmlns="http://ibatis.apache.org/mapping"; 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; >
@@ -8,12 +8,20 @@
                                        parameterClass="Int"
                                        resultClass="bool" >
                        select cast(1 as bit) from Orders where Order_ID = 
#dummy#
+               </statement>
+               <statement id="GetBooleanWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetBoolean">
                </statement>    
 
                <statement id="GetByte"
                                        parameterClass="Int"
                                        resultClass="byte" >
                        select cast(155 as tinyint) from Orders where Order_ID 
= #value#
+               </statement>
+               <statement id="GetByteWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetByte">
                </statement>    
                
                <statement id="GetChar"
@@ -21,35 +29,57 @@
                                        resultClass="char" >
                        select cast('a' as char) from Orders where Order_ID = 
#value#
                </statement>
+               <statement id="GetCharWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetChar">
+               </statement>
                
                <statement id="GetDate"
                                        parameterClass="Int"
                                        resultClass="date" >
                        select cast('2003-02-15 8:15:00' as datetime) from 
Orders where Order_ID  = #value#
                </statement>
+               <statement id="GetDateWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDate">
+               </statement>
                                                                        
                <statement id="GetDecimal"
                                        parameterClass="Int"
                                        resultClass="decimal" >
                        select cast(1.56 as decimal(9,2)) from Orders where 
Order_ID = #value#
                </statement>
+               <statement id="GetDecimalWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDecimal">
+               </statement>
 
                <statement id="GetDouble"
                                        parameterClass="Int"
                                        resultClass="double" >
                        select cast(99.5 as float) from Orders where Order_ID= 
#value#
                </statement>
+               <statement id="GetDoubleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDouble">
+               </statement>
 
                <statement id="GetGuid"
                                        parameterClass="Int"
                                        resultClass="guid" >
                        select cast('CD5ABF17-4BBC-4C86-92F1-257735414CF4' as 
UniqueIdentifier) from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetGuidWithoutResultClass" parameterClass="Int" 
extends="GetGuid">
+               </statement>
                
                <statement id="GetInt16"
                                        parameterClass="Int"
                                        resultClass="short" >
                        select cast(32111 as SmallInt) from Orders where 
Order_ID = #value#
+               </statement>
+               <statement id="GetInt16WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt16">
                </statement>    
                
                <statement id="GetInt32"
@@ -57,18 +87,30 @@
                                        resultClass="int" >
                        select cast(999999 as int) from Orders where Order_ID = 
#value#
                </statement>
+               <statement id="GetInt32WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt32">
+               </statement>
                
                <statement id="GetInt64"
                                        parameterClass="Int"
                                        resultClass="long" >
                        select cast(9223372036854775800 as bigint) from Orders 
where Order_ID = #value#
                </statement>
+               <statement id="GetInt64WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt64">
+               </statement>
                
                <statement id="GetSingle"
                                        parameterClass="Int"
                                        resultClass="float" >
                        select cast(92233.5 as real) from Orders where Order_ID 
= #value#
                </statement>
+               <statement id="GetSingleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetSingle">
+               </statement>
                                                
                <statement id="GetString"
                                        parameterClass="Int"
@@ -76,6 +118,11 @@
                        select 'VISA'
                        from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetStringWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetString">
+               </statement>
+               
        </statements>
 
 </sqlMap>

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/Other.xml
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/Other.xml?rev=345772&r1=345771&r2=345772&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/Other.xml 
(original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/Other.xml 
Sun Nov 20 10:46:27 2005
@@ -160,7 +160,10 @@
                                ( Other_Int, Other_Long, Other_Bit, 
Other_String  )
                        values
                        ( #Int#, #Long#, #Bool#, #Bool2,handler=OuiNonBool#)
-               </statement>            
+               </statement>
+               
+               
+                               
        </statements>
        
        <parameterMaps>   

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/ResultClass.xml
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/ResultClass.xml?rev=345772&r1=345771&r2=345772&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/ResultClass.xml
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/ResultClass.xml
 Sun Nov 20 10:46:27 2005
@@ -1,19 +1,28 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 
-<sqlMap namespace="ResultClass" xmlns="http://ibatis.apache.org/mapping"; 
-xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; >
+<sqlMap namespace="ResultClass" 
+xmlns="http://ibatis.apache.org/mapping"; 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 
        <statements>    
                <statement id="GetBoolean"
                                        parameterClass="Int"
                                        resultClass="bool" >
                        select cast(1 as bit) from Orders where Order_ID = 
#dummy#
+               </statement>
+               <statement id="GetBooleanWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetBoolean">
                </statement>    
 
                <statement id="GetByte"
                                        parameterClass="Int"
                                        resultClass="byte" >
                        select cast(155 as tinyint) from Orders where Order_ID 
= #value#
+               </statement>
+               <statement id="GetByteWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetByte">
                </statement>    
                
                <statement id="GetChar"
@@ -21,35 +30,57 @@
                                        resultClass="char" >
                        select cast('a' as char) from Orders where Order_ID = 
#value#
                </statement>
+               <statement id="GetCharWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetChar">
+               </statement>
                
                <statement id="GetDate"
                                        parameterClass="Int"
                                        resultClass="date" >
                        select cast('2003-02-15 8:15:00' as datetime) from 
Orders where Order_ID  = #value#
                </statement>
+               <statement id="GetDateWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDate">
+               </statement>
                                                                        
                <statement id="GetDecimal"
                                        parameterClass="Int"
                                        resultClass="decimal" >
                        select cast(1.56 as decimal(9,2)) from Orders where 
Order_ID = #value#
                </statement>
+                       <statement id="GetDecimalWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDecimal">
+               </statement>
 
                <statement id="GetDouble"
                                        parameterClass="Int"
                                        resultClass="double" >
                        select cast(99.5 as float) from Orders where Order_ID= 
#value#
                </statement>
+               <statement id="GetDoubleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDouble">
+               </statement>
 
                <statement id="GetGuid"
                                        parameterClass="Int"
                                        resultClass="guid" >
                        select cast('CD5ABF17-4BBC-4C86-92F1-257735414CF4' as 
UniqueIdentifier) from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetGuidWithoutResultClass" parameterClass="Int" 
extends="GetGuid">
+               </statement> 
                
                <statement id="GetInt16"
                                        parameterClass="Int"
                                        resultClass="short" >
                        select cast(32111 as SmallInt) from Orders where 
Order_ID = #value#
+               </statement>
+               <statement id="GetInt16WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt16">
                </statement>    
                
                <statement id="GetInt32"
@@ -57,18 +88,30 @@
                                        resultClass="int" >
                        select cast(999999 as int) from Orders where Order_ID = 
#value#
                </statement>
+               <statement id="GetInt32WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt32">
+               </statement>
                
                <statement id="GetInt64"
                                        parameterClass="Int"
                                        resultClass="long" >
                        select cast(9223372036854775800 as bigint) from Orders 
where Order_ID = #value#
                </statement>
+               <statement id="GetInt64WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt64">
+               </statement>
                
                <statement id="GetSingle"
                                        parameterClass="Int"
                                        resultClass="float" >
                        select cast(92233.5 as real) from Orders where Order_ID 
= #value#
                </statement>
+               <statement id="GetSingleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetSingle">
+               </statement>
                                                
                <statement id="GetString"
                                        parameterClass="Int"
@@ -76,6 +119,11 @@
                        select 'VISA'
                        from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetStringWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetString">
+               </statement>
+               
        </statements>
 
 </sqlMap>

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/ResultClass.xml
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/ResultClass.xml?rev=345772&r1=345771&r2=345772&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/ResultClass.xml
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/ResultClass.xml
 Sun Nov 20 10:46:27 2005
@@ -9,12 +9,20 @@
                                        parameterClass="Int"
                                        resultClass="bool" >
                        select cast(1 as bit) from Orders where Order_ID = 
#dummy#
+               </statement>
+               <statement id="GetBooleanWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetBoolean">
                </statement>    
 
                <statement id="GetByte"
                                        parameterClass="Int"
                                        resultClass="byte" >
                        select cast(155 as tinyint) from Orders where Order_ID 
= #value#
+               </statement>
+               <statement id="GetByteWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetByte">
                </statement>    
                
                <statement id="GetChar"
@@ -22,35 +30,57 @@
                                        resultClass="char" >
                        select cast('a' as char) from Orders where Order_ID = 
#value#
                </statement>
+               <statement id="GetCharWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetChar">
+               </statement>
                
                <statement id="GetDate"
                                        parameterClass="Int"
                                        resultClass="date" >
                        select cast('2003-02-15 8:15:00' as datetime) from 
Orders where Order_ID  = #value#
                </statement>
+               <statement id="GetDateWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDate">
+               </statement>
                                                                        
                <statement id="GetDecimal"
                                        parameterClass="Int"
                                        resultClass="decimal" >
                        select cast(1.56 as decimal(9,2)) from Orders where 
Order_ID = #value#
                </statement>
+               <statement id="GetDecimalWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDecimal">
+               </statement>
 
                <statement id="GetDouble"
                                        parameterClass="Int"
                                        resultClass="double" >
                        select cast(99.5 as float) from Orders where Order_ID= 
#value#
                </statement>
+               <statement id="GetDoubleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDouble">
+               </statement>
 
                <statement id="GetGuid"
                                        parameterClass="Int"
                                        resultClass="guid" >
                        select cast('CD5ABF17-4BBC-4C86-92F1-257735414CF4' as 
UniqueIdentifier) from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetGuidWithoutResultClass" parameterClass="Int" 
extends="GetGuid">
+               </statement> 
                
                <statement id="GetInt16"
                                        parameterClass="Int"
                                        resultClass="short" >
                        select cast(32111 as SmallInt) from Orders where 
Order_ID = #value#
+               </statement>
+               <statement id="GetInt16WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt16">
                </statement>    
                
                <statement id="GetInt32"
@@ -58,18 +88,30 @@
                                        resultClass="int" >
                        select cast(999999 as int) from Orders where Order_ID = 
#value#
                </statement>
+               <statement id="GetInt32WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt32">
+               </statement>
                
                <statement id="GetInt64"
                                        parameterClass="Int"
                                        resultClass="long" >
                        select cast(9223372036854775800 as bigint) from Orders 
where Order_ID = #value#
                </statement>
+               <statement id="GetInt64WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt64">
+               </statement>
                
                <statement id="GetSingle"
                                        parameterClass="Int"
                                        resultClass="float" >
                        select cast(92233.5 as real) from Orders where Order_ID 
= #value#
                </statement>
+               <statement id="GetSingleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetSingle">
+               </statement>
                                                
                <statement id="GetString"
                                        parameterClass="Int"
@@ -77,6 +119,11 @@
                        select 'VISA'
                        from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetStringWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetString">
+               </statement>
+               
        </statements>
 
 </sqlMap>

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/ResultClass.xml
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/ResultClass.xml?rev=345772&r1=345771&r2=345772&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/ResultClass.xml
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/ResultClass.xml
 Sun Nov 20 10:46:27 2005
@@ -8,14 +8,22 @@
                                        parameterClass="Int"
                                        resultClass="bool" >
                        select 1 from Orders where Order_ID = #dummy#
+               </statement>
+               <statement id="GetBooleanWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetBoolean">
                </statement>    
 
                <statement id="GetByte"
                                        parameterClass="Int"
                                        resultClass="byte" >
                        select 155 from Orders where Order_ID = #value#
-               </statement>    
-               
+               </statement>
+               <statement id="GetByteWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetByte">
+               </statement>
+                       
                <!-- 
                NOTE: Use MySql 4.0.2 or higher for "cast"
                -->
@@ -24,24 +32,40 @@
                                        resultClass="char" >
                        select cast('a' as char) from Orders where Order_ID = 
#value#
                </statement>
+               <statement id="GetCharWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetChar">
+               </statement>
                
                <statement id="GetDate"
                                        parameterClass="Int"
                                        resultClass="date" >
                        select cast('2003-02-15 8:15:00' as datetime) from 
Orders where Order_ID  = #value#
                </statement>
-                                                                       
+               <statement id="GetDateWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDate">
+               </statement>
+               
                <statement id="GetDecimal"
                                        parameterClass="Int"
                                        resultClass="decimal" >
                        select 1.56 from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetDecimalWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDecimal">
+               </statement>
 
                <statement id="GetDouble"
                                        parameterClass="Int"
                                        resultClass="double" >
                        select 99.5 from Orders where Order_ID= #value#
                </statement>
+               <statement id="GetDoubleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDouble">
+               </statement>
 
                <!--
                Use binary for cast for MySql
@@ -51,11 +75,17 @@
                                        resultClass="guid" >
                        select cast('CD5ABF17-4BBC-4C86-92F1-257735414CF4' as 
binary) from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetGuidWithoutResultClass" parameterClass="Int" 
extends="GetGuid">
+               </statement>
                
                <statement id="GetInt16"
                                        parameterClass="Int"
                                        resultClass="short" >
                        select 32111 from Orders where Order_ID = #value#
+               </statement>
+               <statement id="GetInt16WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt16">
                </statement>    
                
                <statement id="GetInt32"
@@ -63,18 +93,30 @@
                                        resultClass="int" >
                        select 999999 from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetInt32WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt32">
+               </statement>
                
                <statement id="GetInt64"
                                        parameterClass="Int"
                                        resultClass="long" >
                        select 9223372036854775800 from Orders where Order_ID = 
#value#
                </statement>
+               <statement id="GetInt64WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt64">
+               </statement>
                
                <statement id="GetSingle"
                                        parameterClass="Int"
                                        resultClass="float" >
                        select 92233.5 from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetSingleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetSingle">
+               </statement>
                                                
                <statement id="GetString"
                                        parameterClass="Int"
@@ -82,6 +124,11 @@
                        select 'VISA'
                        from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetStringWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetString">
+               </statement>
+               
        </statements>
 
 </sqlMap>

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/ResultClass.xml
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/ResultClass.xml?rev=345772&r1=345771&r2=345772&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/ResultClass.xml
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/ResultClass.xml
 Sun Nov 20 10:46:27 2005
@@ -8,12 +8,20 @@
                                        parameterClass="Int"
                                        resultClass="bool" >
                        select 1 from Orders where Order_ID = #dummy#
-               </statement>    
+               </statement>
+               <statement id="GetBooleanWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetBoolean">
+               </statement>
 
                <statement id="GetByte"
                                        parameterClass="Int"
                                        resultClass="byte" >
                        select 155 from Orders where Order_ID = #value#
+               </statement>
+               <statement id="GetByteWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetByte">
                </statement>    
                
                <!-- 
@@ -24,24 +32,40 @@
                                        resultClass="char" >
                        select cast('a' as char) from Orders where Order_ID = 
#value#
                </statement>
+               <statement id="GetCharWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetChar">
+               </statement>
                
                <statement id="GetDate"
                                        parameterClass="Int"
                                        resultClass="date" >
                        select cast('2003-02-15 8:15:00' as datetime) from 
Orders where Order_ID  = #value#
                </statement>
+               <statement id="GetDateWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDate">
+               </statement>
                                                                        
                <statement id="GetDecimal"
                                        parameterClass="Int"
                                        resultClass="decimal" >
                        select 1.56 from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetDecimalWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDecimal">
+               </statement>
 
                <statement id="GetDouble"
                                        parameterClass="Int"
                                        resultClass="double" >
                        select 99.5 from Orders where Order_ID= #value#
                </statement>
+               <statement id="GetDoubleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDouble">
+               </statement>
 
                <!--
                Use binary for cast for MySql
@@ -51,30 +75,48 @@
                                        resultClass="guid" >
                        select cast('CD5ABF17-4BBC-4C86-92F1-257735414CF4' as 
binary) from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetGuidWithoutResultClass" parameterClass="Int" 
extends="GetGuid">
+               </statement>
                
                <statement id="GetInt16"
                                        parameterClass="Int"
                                        resultClass="short" >
                        select 32111 from Orders where Order_ID = #value#
-               </statement>    
+               </statement>
+               <statement id="GetInt16WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt16">
+               </statement>
                
                <statement id="GetInt32"
                                        parameterClass="Int"
                                        resultClass="int" >
                        select 999999 from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetInt32WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt32">
+               </statement>
                
                <statement id="GetInt64"
                                        parameterClass="Int"
                                        resultClass="long" >
                        select 9223372036854775800 from Orders where Order_ID = 
#value#
                </statement>
+               <statement id="GetInt64WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt64">
+               </statement>
                
                <statement id="GetSingle"
                                        parameterClass="Int"
                                        resultClass="float" >
                        select 92233.5 from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetSingleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetSingle">
+               </statement>
                                                
                <statement id="GetString"
                                        parameterClass="Int"
@@ -82,6 +124,11 @@
                        select 'VISA'
                        from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetStringWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetString">
+               </statement>
+               
        </statements>
 
 </sqlMap>

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/ResultClass.xml
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/ResultClass.xml?rev=345772&r1=345771&r2=345772&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/ResultClass.xml
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/ResultClass.xml
 Sun Nov 20 10:46:27 2005
@@ -9,12 +9,20 @@
                                        parameterClass="Int"
                                        resultClass="bool" >
                        select 1 from dual where 1 = #dummy#
+               </statement>
+               <statement id="GetBooleanWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetBoolean">
                </statement>    
 
                <statement id="GetByte"
                                        parameterClass="Int"
                                        resultClass="byte" >
                        select 155 from dual where 1 = #value#
+               </statement>
+               <statement id="GetByteWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetByte">
                </statement>    
                
                <statement id="GetChar"
@@ -22,18 +30,30 @@
                                        resultClass="char" >
                        select cast('a' as char) from dual where 1 = #value#
                </statement>
+               <statement id="GetCharWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetChar">
+               </statement>
                
                <statement id="GetDate"
                                        parameterClass="Int"
                                        resultClass="date" >
                        select TO_DATE('2003-02-15 8:15:00', 'YYYY-MM-DD 
HH:MI:SS') from dual where 1 = #value#
                </statement>
+               <statement id="GetDateWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDate">
+               </statement>
                                                                        
                <statement id="GetDecimal"
                                        parameterClass="Int"
                                        resultClass="decimal" >
                        select 1.56 from dual where 1 = #value#
                </statement>
+               <statement id="GetDecimalWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDecimal">
+               </statement>
 
                <!--
                Using ODP.NET 10.1
@@ -54,17 +74,27 @@
                                        resultClass="double" >
                        select trunc(99.5,1) from dual where 1 = #value#
                </statement>
+               <statement id="GetDoubleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDouble">
+               </statement>
 
                <statement id="GetGuid"
                                        parameterClass="Int"
                                        resultClass="guid" >
                        select 'CD5ABF17-4BBC-4C86-92F1-257735414CF4' from dual 
where 1 = #value#
                </statement>
+               <statement id="GetGuidWithoutResultClass" parameterClass="Int" 
extends="GetGuid">
+               </statement> 
                
                <statement id="GetInt16"
                                        parameterClass="Int"
                                        resultClass="short" >
                        select 32111 from dual where 1 = #value#
+               </statement>
+               <statement id="GetInt16WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt16">
                </statement>    
                
                <statement id="GetInt32"
@@ -72,12 +102,20 @@
                                        resultClass="int" >
                        select 999999 from dual where 1 = #value#
                </statement>
+               <statement id="GetInt32WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt32">
+               </statement>
                
                <statement id="GetInt64"
                                        parameterClass="Int"
                                        resultClass="long" >
                        select 9223372036854775800 from dual where 1 = #value#
                </statement>
+               <statement id="GetInt64WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt64">
+               </statement>
                
                <!--
                Using ODP.NET 10.1
@@ -98,6 +136,10 @@
                                        resultClass="float" >
                        select trunc(92233.5,1) from dual where 1 = #value#
                </statement>
+               <statement id="GetSingleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetSingle">
+               </statement>
                                                
                <statement id="GetString"
                                        parameterClass="Int"
@@ -105,6 +147,11 @@
                        select 'VISA'
                        from dual where 1 = #value#
                </statement>
+               <statement id="GetStringWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetString">
+               </statement>
+               
        </statements>
 
 </sqlMap>

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/ResultClass.xml
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/ResultClass.xml?rev=345772&r1=345771&r2=345772&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/ResultClass.xml
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/ResultClass.xml
 Sun Nov 20 10:46:27 2005
@@ -8,48 +8,78 @@
                                        parameterClass="Int"
                                        resultClass="bool" >
                        select 1 from dual where 1 = #dummy#
-               </statement>    
+               </statement>
+               <statement id="GetBooleanWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetBoolean">
+               </statement>
 
                <statement id="GetByte"
                                        parameterClass="Int"
                                        resultClass="byte" >
                        select 155 from dual where 1 = #value#
-               </statement>    
+               </statement>
+               <statement id="GetByteWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetByte">
+               </statement>
                
                <statement id="GetChar"
                                        parameterClass="Int"
                                        resultClass="char" >
                        select cast('a' as char) from dual where 1 = #value#
                </statement>
+               <statement id="GetCharWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetChar">
+               </statement>
                
                <statement id="GetDate"
                                        parameterClass="Int"
                                        resultClass="date" >
                        select TO_DATE('2003-02-15 8:15:00', 'YYYY-MM-DD 
HH:MI:SS') from dual where 1 = #value#
                </statement>
+               <statement id="GetDateWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDate">
+               </statement>
                                                                        
                <statement id="GetDecimal"
                                        parameterClass="Int"
                                        resultClass="decimal" >
                        select 1.56 from dual where 1 = #value#
                </statement>
+               <statement id="GetDecimalWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDecimal">
+               </statement>
 
                <statement id="GetDouble"
                                        parameterClass="Int"
                                        resultClass="double" >
                        select 99.5 from dual where 1 = #value#
                </statement>
+               <statement id="GetDoubleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDouble">
+               </statement>
 
                <statement id="GetGuid"
                                        parameterClass="Int"
                                        resultClass="guid" >
                        select 'CD5ABF17-4BBC-4C86-92F1-257735414CF4' from dual 
where 1 = #value#
                </statement>
+               <statement id="GetGuidWithoutResultClass" parameterClass="Int" 
extends="GetGuid">
+               </statement>
                
                <statement id="GetInt16"
                                        parameterClass="Int"
                                        resultClass="short" >
                        select 32111 from dual where 1 = #value#
+               </statement>
+               <statement id="GetInt16WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt16">
                </statement>    
                
                <statement id="GetInt32"
@@ -57,6 +87,10 @@
                                        resultClass="int" >
                        select 999999 from dual where 1 = #value#
                </statement>
+               <statement id="GetInt32WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt32">
+               </statement>
                
                <statement id="GetInt64"
                                        parameterClass="Int"
@@ -69,6 +103,10 @@
                                        resultClass="float" >
                        select 92233.5 from dual where 1 = #value#
                </statement>
+               <statement id="GetSingleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetSingle">
+               </statement>
                                                
                <statement id="GetString"
                                        parameterClass="Int"
@@ -76,6 +114,11 @@
                        select 'VISA'
                        from dual where 1 = #value#
                </statement>
+               <statement id="GetStringWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetString">
+               </statement>
+               
        </statements>
 
 </sqlMap>

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/ResultClass.xml
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/ResultClass.xml?rev=345772&r1=345771&r2=345772&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/ResultClass.xml
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/ResultClass.xml
 Sun Nov 20 10:46:27 2005
@@ -8,12 +8,20 @@
                                        parameterClass="Int"
                                        resultClass="bool" >
                        select 1 from Orders where Order_ID = #dummy#
-               </statement>    
+               </statement>
+               <statement id="GetBooleanWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetBoolean">
+               </statement>
 
                <statement id="GetByte"
                                        parameterClass="Int"
                                        resultClass="byte" >
                        select 155 from Orders where Order_ID = #value#
+               </statement>
+               <statement id="GetByteWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetByte">
                </statement>    
                
                <statement id="GetChar"
@@ -21,54 +29,88 @@
                                        resultClass="char" >
                        select 'a' from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetCharWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetChar">
+               </statement>
                
                <statement id="GetDate"
                                        parameterClass="Int"
                                        resultClass="date" >
                        select '2003-02-15 8:15:00'::timestamp from Orders 
where Order_ID  = #value#
                </statement>
+               <statement id="GetDateWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDate">
+               </statement>
                                                                        
                <statement id="GetDecimal"
                                        parameterClass="Int"
                                        resultClass="decimal" >
                        select 1.56 from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetDecimalWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDecimal">
+               </statement>
 
                <statement id="GetDouble"
                                        parameterClass="Int"
                                        resultClass="double" >
                        select CAST(99.5 as float8) from Orders where Order_ID= 
#value#
                </statement>
+               <statement id="GetDoubleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetDouble">
+               </statement>
 
                <statement id="GetGuid"
                                        parameterClass="Int"
                                        resultClass="guid" >
                        select 'CD5ABF17-4BBC-4C86-92F1-257735414CF4' from 
Orders where Order_ID = #value#
                </statement>
+               <statement id="GetGuidWithoutResultClass" parameterClass="Int" 
extends="GetGuid">
+               </statement> 
                
                <statement id="GetInt16"
                                        parameterClass="Int"
                                        resultClass="short" >
                        select 32111 from Orders where Order_ID = #value#
-               </statement>    
+               </statement>
+               <statement id="GetInt16WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt16">
+               </statement>
                
                <statement id="GetInt32"
                                        parameterClass="Int"
                                        resultClass="int" >
                        select 999999 from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetInt32WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt32">
+               </statement>
                
                <statement id="GetInt64"
                                        parameterClass="Int"
                                        resultClass="long" >
                        select 9223372036854775800 from Orders where Order_ID = 
#value#
                </statement>
+               <statement id="GetInt64WithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetInt64">
+               </statement>
                
                <statement id="GetSingle"
                                        parameterClass="Int"
                                        resultClass="float" >
                        select CAST(92233.5as float4) from Orders where 
Order_ID = #value#
                </statement>
+               <statement id="GetSingleWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetSingle">
+               </statement>
                                                
                <statement id="GetString"
                                        parameterClass="Int"
@@ -76,6 +118,11 @@
                        select 'VISA'
                        from Orders where Order_ID = #value#
                </statement>
+               <statement id="GetStringWithoutResultClass"
+                                       parameterClass="Int"
+                                       extends="GetString">
+               </statement>
+               
        </statements>
 
 </sqlMap>

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultClassTest.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultClassTest.cs?rev=345772&r1=345771&r2=345772&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultClassTest.cs
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultClassTest.cs
 Sun Nov 20 10:46:27 2005
@@ -1,9 +1,7 @@
 using System;
-using System.Collections;
 
 using NUnit.Framework;
 
-using IBatisNet.DataMapper.Test.NUnit;
 using IBatisNet.DataMapper.Test.Domain;
 
 namespace IBatisNet.DataMapper.Test.NUnit.SqlMapTests
@@ -47,6 +45,17 @@
                }
 
                /// <summary>
+               ///  Test a boolean implicit resultClass
+               /// </summary>
+               [Test]
+               public void TestBooleanWithoutResultClass() 
+               {
+                       bool bit = 
Convert.ToBoolean(sqlMap.QueryForObject("GetBooleanWithoutResultClass", 1));
+
+                       Assert.AreEqual(true, bit);
+               }
+
+               /// <summary>
                ///  Test a byte resultClass
                /// </summary>
                [Test] 
@@ -57,6 +66,16 @@
                        Assert.AreEqual(155, letter);
                }
 
+               /// <summary>
+               ///  Test a byte implicit resultClass
+               /// </summary>
+               [Test] 
+               public void TestByteWithoutResultClass() 
+               {
+                       byte letter = 
Convert.ToByte(sqlMap.QueryForObject("GetByteWithoutResultClass", 1));
+
+                       Assert.AreEqual(155, letter);
+               }
 
                /// <summary>
                ///  Test a char resultClass
@@ -69,6 +88,16 @@
                        Assert.AreEqual('a', letter);
                }
 
+               /// <summary>
+               ///  Test a char implicit resultClass
+               /// </summary>
+               [Test] 
+               public void TestCharWithoutResultClass() 
+               {
+                       char letter = 
Convert.ToChar(sqlMap.QueryForObject("GetCharWithoutResultClass", 1));
+
+                       Assert.AreEqual('a', letter);
+               }
 
                /// <summary>
                ///  Test a DateTime resultClass
@@ -84,6 +113,19 @@
                }
 
                /// <summary>
+               ///  Test a DateTime implicit resultClass
+               /// </summary>
+               [Test] 
+               public void TestDateTimeWithoutResultClass() 
+               {
+                       DateTime orderDate = 
Convert.ToDateTime(sqlMap.QueryForObject("GetDateWithoutResultClass", 1));
+
+                       System.DateTime date = new DateTime(2003, 2, 15, 8, 15, 
00);
+
+                       Assert.AreEqual(date.ToString(), orderDate.ToString());
+               }
+
+               /// <summary>
                ///  Test a decimal resultClass
                /// </summary>
                [Test] 
@@ -95,6 +137,17 @@
                }
 
                /// <summary>
+               ///  Test a decimal implicit resultClass
+               /// </summary>
+               [Test] 
+               public void TestDecimalWithoutResultClass() 
+               {
+                       decimal price = 
Convert.ToDecimal(sqlMap.QueryForObject("GetDecimalWithoutResultClass", 1));
+
+                       Assert.AreEqual((decimal)1.56, price);
+               }
+
+               /// <summary>
                ///  Test a double resultClass
                /// </summary>
                [Test] 
@@ -106,6 +159,17 @@
                }
 
                /// <summary>
+               ///  Test a double implicit resultClass
+               /// </summary>
+               [Test] 
+               public void TestDoubleWithoutResultClass() 
+               {
+                       double price = 
Convert.ToDouble(sqlMap.QueryForObject("GetDoubleWithoutResultClass", 1));
+
+                       Assert.AreEqual(99.5f, price);
+               }
+
+               /// <summary>
                ///  IBATISNET-25 Error applying ResultMap when using 'Guid' in 
resultClass
                /// </summary>
                [Test] 
@@ -119,6 +183,21 @@
                }
 
                /// <summary>
+               /// Test a Guid implicit resultClass
+               /// </summary>
+               [Test] 
+               public void TestGuidWithoutResultClass()
+               {
+                       Guid newGuid = new 
Guid("CD5ABF17-4BBC-4C86-92F1-257735414CF4");
+
+                       string guidString = 
Convert.ToString(sqlMap.QueryForObject("GetGuidWithoutResultClass", 1));
+
+                       Guid guid = new Guid(guidString);
+
+                       Assert.AreEqual(newGuid, guid);
+               }
+
+               /// <summary>
                ///  Test a int16 resultClass
                /// </summary>
                [Test] 
@@ -130,6 +209,17 @@
                }
 
                /// <summary>
+               ///  Test a int16 implicit resultClass
+               /// </summary>
+               [Test] 
+               public void TestInt16WithoutResultClass() 
+               {
+                       short integer = 
Convert.ToInt16(sqlMap.QueryForObject("GetInt16WithoutResultClass", 1));
+
+                       Assert.AreEqual(32111, integer);
+               }
+
+               /// <summary>
                ///  Test a int 32 resultClass
                /// </summary>
                [Test] 
@@ -142,6 +232,18 @@
                }
 
                /// <summary>
+               ///  Test a int 32 implicit resultClass
+               /// </summary>
+               [Test] 
+
+               public void TestInt32WithoutResultClass() 
+               {
+                       int integer = 
Convert.ToInt32(sqlMap.QueryForObject("GetInt32WithoutResultClass", 1));
+
+                       Assert.AreEqual(999999, integer);
+               }
+
+               /// <summary>
                ///  Test a int64 resultClass
                /// </summary>
                [Test] 
@@ -153,12 +255,34 @@
                }
 
                /// <summary>
+               ///  Test a int64 implicit resultClass
+               /// </summary>
+               [Test] 
+               public void TestInt64WithoutResultClass() 
+               {
+                       long bigInt = 
Convert.ToInt64(sqlMap.QueryForObject("GetInt64WithoutResultClass", 1));
+
+                       Assert.AreEqual(9223372036854775800, bigInt);
+               }
+
+               /// <summary>
                ///  Test a single/float resultClass
                /// </summary>
                [Test] 
                public void TestSingle() 
                {
-                       float price = (float) 
sqlMap.QueryForObject("GetSingle", 1);
+                       float price = (float)sqlMap.QueryForObject("GetSingle", 
1);
+
+                       Assert.AreEqual(92233.5, price);
+               }
+
+               /// <summary>
+               ///  Test a single/float implicit resultClass
+               /// </summary>
+               [Test] 
+               public void TestSingleWithoutResultClass() 
+               {
+                       double price = 
Convert.ToDouble(sqlMap.QueryForObject("GetSingleWithoutResultClass", 1));
 
                        Assert.AreEqual(92233.5, price);
                }
@@ -175,6 +299,17 @@
                }
 
                /// <summary>
+               ///  Test a string implicit resultClass
+               /// </summary>
+               [Test] 
+               public void TestStringWithoutResultClass() 
+               {
+                       string cardType = 
Convert.ToString(sqlMap.QueryForObject("GetStringWithoutResultClass", 1));
+
+                       Assert.AreEqual("VISA", cardType);
+               }
+
+               /// <summary>
                ///  Test a TimeSpan resultClass
                /// </summary>
                [Test] 
@@ -191,6 +326,16 @@
                        Guid guid = (Guid)sqlMap.QueryForObject("GetGuid", key);
 
                        Assert.AreEqual(newGuid, guid);
+               }
+
+               /// <summary>
+               ///  Test a TimeSpan implicit resultClass
+               /// </summary>
+               [Test] 
+               [Ignore("To do")]
+               public void TestTimeSpanWithoutResultClass() 
+               {
+
                }
                #endregion
        }

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs?rev=345772&r1=345771&r2=345772&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs 
(original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs 
Sun Nov 20 10:46:27 2005
@@ -33,6 +33,7 @@
 using System.Text;
 using IBatisNet.Common;
 using IBatisNet.Common.Logging;
+using IBatisNet.Common.Utilities;
 using IBatisNet.Common.Utilities.Objects;
 using IBatisNet.DataMapper.Commands;
 using IBatisNet.DataMapper.Configuration.ParameterMapping;
@@ -278,7 +279,7 @@
                                                property.PropertyName = "value";
                                                property.ColumnIndex = 0;
                                                property.TypeHandler = 
_sqlMap.TypeHandlerFactory.GetTypeHandler(outObject.GetType());
-
+                                               
                                                
resultMap.AddResultPropery(property);
 
                                                SetObjectProperty(request, 
request.ResultMap, property, ref outObject, reader);
@@ -287,20 +288,59 @@
                                        {
                                                for (int i = 0; i < 
reader.FieldCount; i++) 
                                                {
-                                                       string columnName = 
reader.GetName(i);
-                                                       ((IDictionary) 
outObject).Add(columnName, reader.GetValue(i));
+                                                       ResultProperty property 
= new ResultProperty();
+                                                       property.PropertyName = 
"value";
+                                                       property.ColumnIndex = 
i;
+                                                       property.TypeHandler = 
_sqlMap.TypeHandlerFactory.GetTypeHandler(reader.GetFieldType(i));
+                                                       ((IDictionary) 
outObject).Add(
+                                                               
reader.GetName(i), 
+                                                               
property.GetDataBaseValue(reader));
                                                }
                                        }
                                        else if (outObject is IList) 
                                        {
                                                for (int i = 0; i < 
reader.FieldCount; i++) 
                                                {
-                                                       ((IList) 
outObject).Add(reader.GetValue(i));
+                                                       ResultProperty property 
= new ResultProperty();
+                                                       property.PropertyName = 
"value";
+                                                       property.ColumnIndex = 
i;
+                                                       property.TypeHandler = 
_sqlMap.TypeHandlerFactory.GetTypeHandler(reader.GetFieldType(i));
+                                                       ((IList) 
outObject).Add(property.GetDataBaseValue(reader));
                                                }
                                        }
                                        else
                                        {
                                                AutoMapReader( reader, ref 
outObject);
+                                       }
+                               }
+                               else
+                               {
+                                       if (reader.FieldCount == 1)
+                                       {
+                                               ResultProperty property = new 
ResultProperty();
+                                               property.PropertyName = "value";
+                                               property.ColumnIndex = 0;
+                                               property.TypeHandler = 
_sqlMap.TypeHandlerFactory.GetTypeHandler(reader.GetFieldType(0));
+                                               outObject = 
property.GetDataBaseValue(reader);
+                                       }
+                                       else if (reader.FieldCount > 1)
+                                       {
+                                               object[] newOutObject = new 
object[reader.FieldCount];
+
+                                               for (int i = 0; i < 
reader.FieldCount; i++) 
+                                               {
+                                                       ResultProperty property 
= new ResultProperty();
+                                                       property.PropertyName = 
"value";
+                                                       property.ColumnIndex = 
i;
+                                                       property.TypeHandler = 
_sqlMap.TypeHandlerFactory.GetTypeHandler(reader.GetFieldType(i));
+                                                       newOutObject[i] = 
property.GetDataBaseValue(reader);
+                                               }
+
+                                               outObject = newOutObject;
+                                       }
+                                       else
+                                       {
+                                               // do nothing if 0 fields
                                        }
                                }
                        }


Reply via email to