Author: gbayon
Date: Mon Jul 17 11:31:36 2006
New Revision: 422779
URL: http://svn.apache.org/viewvc?rev=422779&view=rev
Log:
- Updated DataTable process
Did you liked Ron ?
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/MappedStatement.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/DataTableStrategy.cs
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/SqlMapper.cs
Modified:
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/MappedStatement.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/MappedStatement.cs?rev=422779&r1=422778&r2=422779&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/MappedStatement.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/MappedStatement.cs
Mon Jul 17 11:31:36 2006
@@ -820,13 +820,13 @@
#endregion
- public DataTable ExecuteQueryForDataTable(IDalSession session,
object parameterObject)
+ public DataTable ExecuteQueryForDataTable(IDalSession session,
object parameterObject, DataTable resultObject)
{
RequestScope request =
_statement.Sql.GetRequestScope(this, parameterObject, session);
_preparedCommand.Create(request, session,
this.Statement, parameterObject);
- return RunQueryForDataTable(request, session,
parameterObject);
+ return RunQueryForDataTable(request, session,
resultObject);
}
#region ExecuteQueryForMap
@@ -916,19 +916,13 @@
}
- public DataTable RunQueryForDataTable(RequestScope request,
IDalSession session, object parameterObject)
+ public DataTable RunQueryForDataTable(RequestScope request,
IDalSession session, DataTable resultObject)
{
DataTable dataTable = null;
using (IDbCommand command = request.IDbCommand)
{
- using (IDataReader reader =
command.ExecuteReader())
- {
- while (reader.Read() )
- {
- dataTable =
(DataTable)_resultStrategy.Process(request, reader, dataTable);
- }
- }
+ dataTable =
(DataTable)_resultStrategy.Process(request, null, resultObject);
}
return dataTable;
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=422779&r1=422778&r2=422779&view=diff
==============================================================================
---
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/DataTableStrategy.cs
(original)
+++
ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/MappedStatements/ResultStrategy/DataTableStrategy.cs
Mon Jul 17 11:31:36 2006
@@ -40,43 +40,22 @@
#region IResultStrategy Members
/// <summary>
- /// Processes the specified <see cref="IDataReader"/>
- /// when a 'resultClass' attribute is specified on the
statement and
- /// the 'resultClass' attribute is a <see cref="DataTable"/>.
+ /// To Do
/// </summary>
/// <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)
{
- object outObject = resultObject;
+ DataTable dataTable = resultObject as DataTable;
- if (outObject == null)
- {
- outObject = new DataTable(request.Statement.Id);
+ DataAdapter dataAdapter =
request.Session.DataSource.DbProvider.CreateDataAdapter() as DataAdapter;
+ dataAdapter.SelectCommand = request.IDbCommand;
- DataTable dataColumn = reader.GetSchemaTable();
- for (int i = 0; i < dataColumn.Rows.Count; i++)
- {
- ((DataTable)
outObject).Columns.Add(dataColumn.Rows[i][0].ToString());
- }
- }
-
- DataRow dataRow = ((DataTable) outObject).NewRow();
- int count = reader.FieldCount;
- for (int i = 0; i < count; i++)
- {
- ResultProperty property = new ResultProperty();
- property.PropertyName = "value";
- property.ColumnIndex = i;
- property.TypeHandler =
request.DataExchangeFactory.TypeHandlerFactory.GetTypeHandler(reader.GetFieldType(i));
- dataRow[i] = property.GetDataBaseValue(reader);
- }
- ((DataTable) outObject).Rows.Add(dataRow);
-
- return outObject;
+ // The Fill operation then adds the rows to the
specified destination DataTable object in the DataSet,
+ // creating the DataTable object if it does not already
exist.
+ dataAdapter.Fill(dataTable);
+ return dataTable;
}
- #endregion
- }
}
Modified: ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/SqlMapper.cs
URL:
http://svn.apache.org/viewvc/ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/SqlMapper.cs?rev=422779&r1=422778&r2=422779&view=diff
==============================================================================
--- ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/SqlMapper.cs
(original)
+++ ibatis/branches/IBatisNet.DataMapper-QueryForDataTable/SqlMapper.cs Mon Jul
17 11:31:36 2006
@@ -613,7 +613,8 @@
#endregion
- public DataTable QueryForDataTable(string statementName, object
parameterObject)
+
+ public DataTable QueryForDataTable(string statementName, object
parameterObject, DataTable resultObject)
{
bool isSessionLocal = false;
IDalSession session = _sessionHolder.LocalSession;
@@ -629,7 +630,7 @@
try
{
IMappedStatement statement =
GetMappedStatement(statementName);
- dataTable =
statement.ExecuteQueryForDataTable(session, parameterObject);
+ dataTable =
statement.ExecuteQueryForDataTable(session, parameterObject, resultObject);
}
catch
{