Author: rgrabowski
Date: Tue Jul 18 18:13:06 2006
New Revision: 423321
URL: http://svn.apache.org/viewvc?rev=423321&view=rev
Log:
Merged with trunk revision 423230 for IBATISNET-167, IBATISNET-170,
IBATISNET-172: using() blocks replaced by try/finally so IDataReader can be
passed by ref.
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/AssemblyInfo.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/Commands/DataReaderTransformer.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ArgumentStrategy/SelectGenericListStrategy.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/BaseStrategy.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/MappedStatement.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ReaderAutoMapper.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/AutoMapStrategy.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/DataTableStrategy.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/DictionaryStrategy.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/IResultStrategy.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ListStrategy.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ObjectStrategy.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ResultClassStrategy.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ResultMapStrategy.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/SimpleTypeStrategy.cs
Modified: ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/AssemblyInfo.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/AssemblyInfo.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
--- ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/AssemblyInfo.cs
(original)
+++ ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/AssemblyInfo.cs Tue
Jul 18 18:13:06 2006
@@ -33,4 +33,4 @@
[assembly: AssemblyTitle("IBatisNet.DataMapper")]
[assembly: AssemblyDescription("Map objects to your SQL statements or stored
procedures.")]
-[assembly: AssemblyVersion("1.5.0")]
\ No newline at end of file
+[assembly: AssemblyVersion("1.5.1")]
\ No newline at end of file
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/Commands/DataReaderTransformer.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/Commands/DataReaderTransformer.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/Commands/DataReaderTransformer.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/Commands/DataReaderTransformer.cs
Tue Jul 18 18:13:06 2006
@@ -42,7 +42,7 @@
/// <param name="dbProvider">The databse provider <see
cref="IDbProvider"/></param>
public static IDataReader Transform(IDataReader reader,
IDbProvider dbProvider)
{
- if (!dbProvider.AllowMARS)
+ if (!dbProvider.AllowMARS && !(reader is InMemoryDataReader))
{
// The underlying reader will be closed.
return new InMemoryDataReader(reader);
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ArgumentStrategy/SelectGenericListStrategy.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ArgumentStrategy/SelectGenericListStrategy.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ArgumentStrategy/SelectGenericListStrategy.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ArgumentStrategy/SelectGenericListStrategy.cs
Tue Jul 18 18:13:06 2006
@@ -61,7 +61,7 @@
// Get the select statement
IMappedStatement selectStatement =
request.MappedStatement.SqlMap.GetMappedStatement(mapping.Select);
- reader = DataReaderTransformer.Transforme(reader,
request.Session.DataSource.DbProvider);
+ reader = DataReaderTransformer.Transform(reader,
request.Session.DataSource.DbProvider);
Type[] typeArgs = mapping.MemberType.GetGenericArguments();
Type genericList = typeof(IList<>);
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/BaseStrategy.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/BaseStrategy.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/BaseStrategy.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/BaseStrategy.cs
Tue Jul 18 18:13:06 2006
@@ -42,208 +42,6 @@
/// </summary>
public abstract class BaseStrategy
{
-// /// <summary>
-// /// Gets the argument value for an argument constructor.
-// /// </summary>
-// /// <param name="request">The request.</param>
-// /// <param name="resultMap">The result map.</param>
-// /// <param name="mapping">The mapping.</param>
-// /// <param name="reader">The reader.</param>
-// /// <returns>The argument value</returns>
-// protected object GetObjectArgument(RequestScope request,
ResultMap resultMap, ResultProperty mapping, ref IDataReader reader)
-// {
-// string selectStatement = mapping.Select;
-//
-// if (selectStatement.Length == 0 &&
mapping.NestedResultMap == null)
-// {
-// // If the property is not a 'select'
ResultProperty
-// // or a 'resultMap'
ResultProperty
-// // We have a 'normal' ResultMap
-//
-// #region Not a select statement
-// if (mapping.TypeHandler == null ||
mapping.TypeHandler is UnknownTypeHandler) // Find the TypeHandler
-// {
-// lock(mapping)
-// {
-// if (mapping.TypeHandler == null
|| mapping.TypeHandler is UnknownTypeHandler)
-// {
-// int columnIndex = 0;
-// if (mapping.ColumnIndex
== ResultProperty.UNKNOWN_COLUMN_INDEX)
-// {
-// columnIndex =
reader.GetOrdinal(mapping.ColumnName);
-// }
-// else
-// {
-// columnIndex =
mapping.ColumnIndex;
-// }
-// Type systemType
=((IDataRecord)reader).GetFieldType(columnIndex);
-//
-// mapping.TypeHandler =
request.DataExchangeFactory.TypeHandlerFactory.GetTypeHandler(systemType);
-// }
-// }
-// }
-//
-// object dataBaseValue =
mapping.GetDataBaseValue( reader );
-// request.IsRowDataFound = request.IsRowDataFound
|| (dataBaseValue != null);
-//
-// return dataBaseValue;
-//
-// #endregion
-// }
-// else if (mapping.NestedResultMap != null) //
'resultMap' ResultProperty
-// {
-// object[] parameters = null;
-// if (mapping.NestedResultMap.Parameters.Count >0)
-// {
-// parameters = new
object[resultMap.Parameters.Count];
-// // Fill parameters array
-// for(int index=0; index<
mapping.NestedResultMap.Parameters.Count; index++)
-// {
-// ResultProperty property =
mapping.NestedResultMap.Parameters[index];
-// parameters[index] =
property.GetDataBaseValue( reader );
-// request.IsRowDataFound =
request.IsRowDataFound || (parameters[index] != null);
-// }
-// }
-//
-// object obj =
mapping.NestedResultMap.CreateInstanceOfResult(parameters);
-// if (FillObjectWithReaderAndResultMap(request,
reader, mapping.NestedResultMap, obj) == false)
-// {
-// obj = null;
-// }
-//
-// return obj;
-// }
-// else //'select' ResultProperty
-// {
-// // Get the select statement
-// IMappedStatement queryStatement =
request.MappedStatement.SqlMap.GetMappedStatement(selectStatement);
-// string paramString = mapping.ColumnName;
-// object keys = null;
-// bool wasNull = false;
-//
-// #region Find Key(s)
-// if (paramString.IndexOf(',')>0 ||
paramString.IndexOf('=')>0) // composite parameters key
-// {
-// IDictionary keyMap = new Hashtable();
-// keys = keyMap;
-// // define which character is seperating
fields
-// char[] splitter = {'=',','};
-//
-// string[] paramTab =
paramString.Split(splitter);
-// if (paramTab.Length % 2 != 0)
-// {
-// throw new
DataMapperException("Invalid composite key string format in
'"+mapping.PropertyName+". It must be:
property1=column1,property2=column2,...");
-// }
-// IEnumerator enumerator =
paramTab.GetEnumerator();
-// while (!wasNull &&
enumerator.MoveNext())
-// {
-// string hashKey =
((string)enumerator.Current).Trim();
-// enumerator.MoveNext();
-// object hashValue =
reader.GetValue( reader.GetOrdinal(((string)enumerator.Current).Trim()) );
-//
-// keyMap.Add(hashKey, hashValue );
-// wasNull = (hashValue ==
DBNull.Value);
-// }
-// }
-// else // single parameter key
-// {
-// keys =
reader.GetValue(reader.GetOrdinal(paramString));
-// wasNull =
reader.IsDBNull(reader.GetOrdinal(paramString));
-// }
-// #endregion
-//
-// if (wasNull)
-// {
-// // set the value of an object property
to null
-// return null;
-// }
-// else // Collection object or .Net object
-// {
-// // lazyLoading is not permit for
argument constructor
-//
-// #region Collection object or .NET object
-//
-// if (mapping.MemberType.BaseType ==
typeof(Array))
-// {
-// reader =
DataReaderTransformer.Transform(reader, request.Session.DataSource.DbProvider);
-// IList values =
queryStatement.ExecuteQueryForList(request.Session, keys);
-//
-// Type elementType =
mapping.MemberType.GetElementType();
-// Array array =
Array.CreateInstance(elementType, values.Count);
-// int count = values.Count;
-// for(int i=0;i<count;i++)
-// {
-//
array.SetValue(values[i],i);
-// }
-// return array;
-// }
-// // Check if the object to Map
implement 'IList' or is IList type
-// // If yes the ResultProperty is
map to a IList object
-// else if (
typeof(IList).IsAssignableFrom(mapping.MemberType) )
-// {
-// if (mapping.MemberType ==
typeof(IList))
-// {
-// reader =
DataReaderTransformer.Transform(reader, request.Session.DataSource.DbProvider);
-// return
queryStatement.ExecuteQueryForList(request.Session, keys);
-// }
-// else // Strongly typed List
-// {
-// reader =
DataReaderTransformer.Transform(reader, request.Session.DataSource.DbProvider);
-// IFactory factory =
request.ObjectFactory.CreateFactory(mapping.MemberType, Type.EmptyTypes);
-// object values =
factory.CreateInstance(null);
-//
queryStatement.ExecuteQueryForList(request.Session, keys, (IList)values);
-// return values;
-// }
-// }
-//#if dotnet2
-// else if (mapping.MemberType.IsGenericType &&
-// mapping.MemberType.GetGenericTypeDefinition() ==
typeof(IList<>))
-// {
-// reader = DataReaderTransformer.Transform(reader,
request.Session.DataSource.DbProvider);
-//
-// Type[] typeArgs =
mapping.MemberType.GetGenericArguments();
-// Type genericList = typeof(IList<>);
-// Type constructedType =
genericList.MakeGenericType(typeArgs);
-// Type elementType =
mapping.MemberType.GetGenericArguments()[0];
-//
-// Type mappedStatementType = queryStatement.GetType();
-//
-// Type[] typeArguments = { typeof(IDalSession),
typeof(object) };
-//
-// MethodInfo[] mis =
mappedStatementType.GetMethods(BindingFlags.InvokeMethod | BindingFlags.Public
| BindingFlags.Instance);
-// MethodInfo mi = null;
-// foreach (MethodInfo m in mis)
-// {
-// if (m.IsGenericMethod &&
-// m.Name == "ExecuteQueryForList" &&
-// m.GetParameters().Length == 2)
-// {
-// mi = m;
-// break;
-// }
-// }
-//
-// MethodInfo miConstructed =
mi.MakeGenericMethod(elementType);
-//
-// // Invoke the method.
-// object[] args = { request.Session, keys };
-// object values = miConstructed.Invoke(queryStatement,
args);
-//
-// return values;
-// }
-//#endif
-// else // The ResultProperty is map to a
.Net object
-// {
-// reader =
DataReaderTransformer.Transform(reader, request.Session.DataSource.DbProvider);
-// return
queryStatement.ExecuteQueryForObject(request.Session, keys);
-// }
-// #endregion
-//
-// }
-// }
-// }
-//
-
/// <summary>
/// Fills the object with reader and result map.
/// </summary>
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/MappedStatement.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/MappedStatement.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/MappedStatement.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/MappedStatement.cs
Tue Jul 18 18:13:06 2006
@@ -251,14 +251,23 @@
using ( IDbCommand command = request.IDbCommand )
{
- RaisePreExecuteEvent(request);
- using ( IDataReader reader =
command.ExecuteReader() )
- {
+ IDataReader reader = command.ExecuteReader();
+ try
+ {
if ( reader.Read() )
{
- result =
_resultStrategy.Process(request, reader, resultObject);
- }
- }
+ result = _resultStrategy.Process(request, ref reader,
resultObject);
+ }
+ }
+ catch
+ {
+ throw;
+ }
+ finally
+ {
+ reader.Close();
+ reader.Dispose();
+ }
ExecutePostSelect(request);
@@ -328,12 +337,22 @@
using (IDbCommand command = request.IDbCommand)
{
- using (IDataReader reader = command.ExecuteReader())
+ IDataReader reader = command.ExecuteReader();
+ try
{
if (reader.Read())
{
- result = (T)_resultStrategy.Process(request, reader,
resultObject);
+ result = (T)_resultStrategy.Process(request, ref
reader, resultObject);
}
+ }
+ catch
+ {
+ throw;
+ }
+ finally
+ {
+ reader.Close();
+ reader.Dispose();
}
ExecutePostSelect( request );
@@ -460,9 +479,10 @@
{
list =
_statement.CreateInstanceOfListClass();
}
-
- using ( IDataReader reader =
command.ExecuteReader() )
- {
+
+ IDataReader reader = command.ExecuteReader();
+ try
+ {
// skip results
for (int i = 0; i < skipResults; i++)
{
@@ -479,7 +499,7 @@
while ( (maxResults ==
NO_MAXIMUM_RESULTS || n < maxResults)
&& reader.Read() )
{
- object obj =
_resultStrategy.Process(request, reader, null);
+ object obj = _resultStrategy.Process(request, ref
reader, null);
list.Add( obj );
n++;
@@ -490,13 +510,22 @@
while ( (maxResults ==
NO_MAXIMUM_RESULTS || n < maxResults)
&& reader.Read() )
{
- object obj =
_resultStrategy.Process(request, reader, null);
+ object obj = _resultStrategy.Process(request, ref
reader, null);
rowDelegate(obj,
parameterObject, list);
n++;
}
}
- }
+ }
+ catch
+ {
+ throw;
+ }
+ finally
+ {
+ reader.Close();
+ reader.Dispose();
+ }
ExecutePostSelect(request);
@@ -521,15 +550,25 @@
using ( IDbCommand command = request.IDbCommand )
{
- using ( IDataReader reader =
command.ExecuteReader() )
- {
+ IDataReader reader = command.ExecuteReader();
+ try
+ {
while ( reader.Read() )
{
- object obj =
_resultStrategy.Process(request, reader, null);
+ object obj = _resultStrategy.Process(request, ref
reader, null);
resultObject.Add( obj );
}
- }
+ }
+ catch
+ {
+ throw;
+ }
+ finally
+ {
+ reader.Close();
+ reader.Dispose();
+ }
ExecutePostSelect(request);
@@ -623,8 +662,9 @@
{
list = _statement.CreateInstanceOfGenericListClass<T>();
}
-
- using (IDataReader reader = command.ExecuteReader())
+
+ IDataReader reader = command.ExecuteReader();
+ try
{
// skip results
for (int i = 0; i < skipResults; i++)
@@ -642,7 +682,7 @@
while ((maxResults == NO_MAXIMUM_RESULTS || n <
maxResults)
&& reader.Read())
{
- T obj = (T)_resultStrategy.Process(request,
reader, null);
+ T obj = (T)_resultStrategy.Process(request, ref
reader, null);
list.Add(obj);
n++;
@@ -653,12 +693,21 @@
while ((maxResults == NO_MAXIMUM_RESULTS || n <
maxResults)
&& reader.Read())
{
- T obj = (T)_resultStrategy.Process(request,
reader, null);
+ T obj = (T)_resultStrategy.Process(request, ref
reader, null);
rowDelegate(obj, parameterObject, list);
n++;
}
}
+ }
+ catch
+ {
+ throw;
+ }
+ finally
+ {
+ reader.Close();
+ reader.Dispose();
}
ExecutePostSelect( request );
@@ -684,14 +733,24 @@
using (IDbCommand command = request.IDbCommand)
{
- using (IDataReader reader = command.ExecuteReader())
+ IDataReader reader = command.ExecuteReader();
+ try
{
while (reader.Read())
{
- T obj = (T)_resultStrategy.Process(request, reader,
null);
+ T obj = (T)_resultStrategy.Process(request, ref
reader, null);
resultObject.Add(obj);
}
+ }
+ catch
+ {
+ throw;
+ }
+ finally
+ {
+ reader.Close();
+ reader.Dispose();
}
ExecutePostSelect( request );
@@ -721,7 +780,6 @@
using ( IDbCommand command = request.IDbCommand )
{
- RaisePreExecuteEvent(request);
rows = command.ExecuteNonQuery();
ExecutePostSelect(request);
@@ -768,7 +826,6 @@
{
if (_statement is Insert)
{
- RaisePreExecuteEvent(request);
command.ExecuteNonQuery();
}
else if (_statement is Procedure && (_statement.ResultClass !=
null) &&
@@ -778,7 +835,6 @@
returnValueParameter.Direction =
ParameterDirection.ReturnValue;
command.Parameters.Add(returnValueParameter);
- RaisePreExecuteEvent(request);
command.ExecuteNonQuery ( );
generatedKey = returnValueParameter.Value;
@@ -788,7 +844,6 @@
else
{
- RaisePreExecuteEvent(request);
generatedKey = command.ExecuteScalar();
if ( (_statement.ResultClass!=null) &&
_sqlMap.TypeHandlerFactory.IsSimpleType(_statement.ResultClass) )
@@ -820,15 +875,6 @@
#endregion
- public DataTable ExecuteQueryForDataTable(IDalSession session,
object parameterObject)
- {
- RequestScope request =
_statement.Sql.GetRequestScope(this, parameterObject, session);
-
- _preparedCommand.Create(request, session,
this.Statement, parameterObject);
-
- return RunQueryForDataTable(request, session,
parameterObject);
- }
-
#region ExecuteQueryForMap
/// <summary>
@@ -879,13 +925,14 @@
using (IDbCommand command = request.IDbCommand)
{
- using (IDataReader reader =
command.ExecuteReader())
- {
+ IDataReader reader = command.ExecuteReader();
+ try
+ {
if (rowDelegate == null)
{
while (reader.Read() )
{
- object obj =
_resultStrategy.Process(request, reader, null);
+ object obj = _resultStrategy.Process(request, ref
reader, null);
object key =
ObjectProbe.GetMemberValue(obj, keyProperty,
request.DataExchangeFactory.AccessorFactory);
object value = obj;
if (valueProperty !=
null)
@@ -899,7 +946,7 @@
{
while (reader.Read())
{
- object obj =
_resultStrategy.Process(request, reader, null);
+ object obj = _resultStrategy.Process(request, ref
reader, null);
object key =
ObjectProbe.GetMemberValue(obj,
keyProperty,request.DataExchangeFactory.AccessorFactory);
object value = obj;
if (valueProperty !=
null)
@@ -910,32 +957,60 @@
}
}
- }
+ }
+ catch
+ {
+ throw;
+ }
+ finally
+ {
+ reader.Close();
+ reader.Dispose();
+ }
}
return map;
}
+
+ #endregion
+
+ public DataTable ExecuteQueryForDataTable(IDalSession session,
object parameterObject)
+ {
+ RequestScope request =
_statement.Sql.GetRequestScope(this, parameterObject, session);
+
+ _preparedCommand.Create(request, session,
this.Statement, parameterObject);
+
+ return RunQueryForDataTable(request, session,
parameterObject);
+ }
+
public DataTable RunQueryForDataTable(RequestScope request,
IDalSession session, object parameterObject)
{
DataTable dataTable = null;
using (IDbCommand command = request.IDbCommand)
{
- using (IDataReader reader =
command.ExecuteReader())
+ IDataReader reader = command.ExecuteReader();
+ try
{
while (reader.Read() )
{
- dataTable =
(DataTable)_resultStrategy.Process(request, reader, dataTable);
+ dataTable =
(DataTable)_resultStrategy.Process(request, ref reader, dataTable);
}
}
+ catch
+ {
+ throw;
+ }
+ finally
+ {
+ reader.Close();
+ reader.Dispose();
+ }
}
return dataTable;
}
-
- #endregion
-
/// <summary>
/// Executes the <see cref="PostBindind"/>.
@@ -950,7 +1025,7 @@
PostSelectStrategyFactory.Get(postSelect.Method).Execute(postSelect, request);
}
}
-
+
/// <summary>
/// Raise an event ExecuteEventArgs
/// (Used when a query is executed)
@@ -992,5 +1067,6 @@
#endregion
+
}
}
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ReaderAutoMapper.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ReaderAutoMapper.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ReaderAutoMapper.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ReaderAutoMapper.cs
Tue Jul 18 18:13:06 2006
@@ -101,7 +101,7 @@
{
ISetAccessorFactory setAccessorFactory =
dataExchangeFactory.AccessorFactory.SetAccessorFactory;
ISetAccessor setAccessor =
setAccessorFactory.CreateSetAccessor(targetType, membersName[i]);
- propertyMap.Add(membersName[i].ToUpper(), setAccessor);
+ propertyMap.Add(membersName[i], setAccessor);
}
// Get all column Name from the reader
@@ -111,7 +111,7 @@
for (int i = 0; i < count; i++)
{
string columnName =
dataColumn.Rows[i][0].ToString();
- ISetAccessor matchedSetAccessor =
propertyMap[columnName.ToUpper()] as ISetAccessor;
+ ISetAccessor matchedSetAccessor = propertyMap[columnName]
as ISetAccessor;
ResultProperty property = new
ResultProperty();
property.ColumnName = columnName;
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/AutoMapStrategy.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/AutoMapStrategy.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/AutoMapStrategy.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/AutoMapStrategy.cs
Tue Jul 18 18:13:06 2006
@@ -43,7 +43,7 @@
/// <param name="request">The request.</param>
/// <param name="reader">The reader.</param>
/// <param name="resultObject">The result object.</param>
- private void AutoMapReader(RequestScope request, IDataReader
reader,ref object resultObject)
+ private void AutoMapReader(RequestScope request, ref
IDataReader reader,ref object resultObject)
{
if (request.Statement.RemapResults)
{
@@ -84,7 +84,7 @@
/// <param name="request">The request.</param>
/// <param name="reader">The reader.</param>
/// <param name="resultObject">The result object.</param>
- public object Process(RequestScope request, IDataReader reader, object
resultObject)
+ public object Process(RequestScope request, ref IDataReader reader,
object resultObject)
{
object outObject = resultObject;
@@ -93,7 +93,7 @@
outObject =
request.Statement.CreateInstanceOfResultClass();
}
- AutoMapReader(request, reader, ref outObject);
+ AutoMapReader(request, ref reader, ref outObject);
return outObject;
}
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/DataTableStrategy.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/DataTableStrategy.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/DataTableStrategy.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/DataTableStrategy.cs
Tue Jul 18 18:13:06 2006
@@ -47,7 +47,7 @@
/// <param name="request">The request.</param>
/// <param name="reader">The reader.</param>
/// <param name="resultObject">The result object.</param>
- public object Process(RequestScope request, IDataReader reader,
object resultObject)
+ public object Process(RequestScope request, ref IDataReader
reader, object resultObject)
{
object outObject = resultObject;
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/DictionaryStrategy.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/DictionaryStrategy.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/DictionaryStrategy.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/DictionaryStrategy.cs
Tue Jul 18 18:13:06 2006
@@ -47,7 +47,7 @@
/// <param name="request">The request.</param>
/// <param name="reader">The reader.</param>
/// <param name="resultObject">The result object.</param>
- public object Process(RequestScope request, IDataReader reader, object
resultObject)
+ public object Process(RequestScope request, ref IDataReader reader,
object resultObject)
{
object outObject = resultObject;
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/IResultStrategy.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/IResultStrategy.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/IResultStrategy.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/IResultStrategy.cs
Tue Jul 18 18:13:06 2006
@@ -40,6 +40,6 @@
/// <param name="request">The request.</param>
/// <param name="reader">The reader.</param>
/// <param name="resultObject">The result object.</param>
- object Process(RequestScope request, IDataReader reader, object
resultObject);
+ object Process(RequestScope request, ref IDataReader reader, object
resultObject);
}
}
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ListStrategy.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ListStrategy.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ListStrategy.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ListStrategy.cs
Tue Jul 18 18:13:06 2006
@@ -47,7 +47,7 @@
/// <param name="request">The request.</param>
/// <param name="reader">The reader.</param>
/// <param name="resultObject">The result object.</param>
- public object Process(RequestScope request, IDataReader reader, object
resultObject)
+ public object Process(RequestScope request, ref IDataReader reader,
object resultObject)
{
object outObject = resultObject;
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ObjectStrategy.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ObjectStrategy.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ObjectStrategy.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ObjectStrategy.cs
Tue Jul 18 18:13:06 2006
@@ -23,7 +23,6 @@
********************************************************************************/
#endregion
-using System.Collections;
using System.Data;
using IBatisNet.DataMapper.Configuration.ResultMapping;
using IBatisNet.DataMapper.Scope;
@@ -45,7 +44,7 @@
/// <param name="request">The request.</param>
/// <param name="reader">The reader.</param>
/// <param name="resultObject">The result object.</param>
- public object Process(RequestScope request, IDataReader reader, object
resultObject)
+ public object Process(RequestScope request, ref IDataReader reader,
object resultObject)
{
object outObject = resultObject;
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ResultClassStrategy.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ResultClassStrategy.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ResultClassStrategy.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ResultClassStrategy.cs
Tue Jul 18 18:13:06 2006
@@ -61,28 +61,28 @@
/// <param name="request">The request.</param>
/// <param name="reader">The reader.</param>
/// <param name="resultObject">The result object.</param>
- public object Process(RequestScope request, IDataReader reader,
object resultObject)
+ public object Process(RequestScope request, ref IDataReader reader,
object resultObject)
{
// Check if the ResultClass is a 'primitive' Type
if
(request.DataExchangeFactory.TypeHandlerFactory.IsSimpleType(request.Statement.ResultClass))
{
- return _simpleTypeStrategy.Process(request,
reader, resultObject);
+ return _simpleTypeStrategy.Process(request, ref reader,
resultObject);
}
else if
(typeof(IDictionary).IsAssignableFrom(request.Statement.ResultClass))
{
- return _dictionaryStrategy.Process(request,
reader, resultObject);
+ return _dictionaryStrategy.Process(request, ref reader,
resultObject);
}
else if
(typeof(IList).IsAssignableFrom(request.Statement.ResultClass))
{
- return _listStrategy.Process(request, reader,
resultObject);
+ return _listStrategy.Process(request, ref reader,
resultObject);
}
else if
(typeof(DataTable).IsAssignableFrom(request.Statement.ResultClass))
{
- return _dataTableStrategy.Process(request,
reader, resultObject);
+ return _dataTableStrategy.Process(request, ref
reader, resultObject);
}
else
{
- return _autoMapStrategy.Process(request,
reader, resultObject);
+ return _autoMapStrategy.Process(request, ref reader,
resultObject);
}
}
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ResultMapStrategy.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ResultMapStrategy.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ResultMapStrategy.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/ResultMapStrategy.cs
Tue Jul 18 18:13:06 2006
@@ -44,7 +44,7 @@
/// <param name="request">The request.</param>
/// <param name="reader">The reader.</param>
/// <param name="resultObject">The result object.</param>
- public object Process(RequestScope request, IDataReader reader, object
resultObject)
+ public object Process(RequestScope request, ref IDataReader reader,
object resultObject)
{
object outObject = resultObject;
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/SimpleTypeStrategy.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/SimpleTypeStrategy.cs?rev=423321&r1=423320&r2=423321&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/SimpleTypeStrategy.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/SimpleTypeStrategy.cs
Tue Jul 18 18:13:06 2006
@@ -47,7 +47,7 @@
/// <param name="request">The request.</param>
/// <param name="reader">The reader.</param>
/// <param name="resultObject">The result object.</param>
- public object Process(RequestScope request, IDataReader reader, object
resultObject)
+ public object Process(RequestScope request, ref IDataReader reader,
object resultObject)
{
object outObject = resultObject;