SPRNET-1065 - Extraneous connection open in DataSet operations
This commit is contained in:
@@ -329,8 +329,8 @@ namespace Spring.Data.Core
|
||||
IDbDataAdapter dataAdapter = null;
|
||||
try
|
||||
{
|
||||
dataAdapter = DbProvider.CreateDataAdapter();
|
||||
//TODO row updated event handling... (SPRNET-1014)
|
||||
dataAdapter = DbProvider.CreateDataAdapter();
|
||||
//TODO row updated event handling...
|
||||
dataAdapter.SelectCommand = DbProvider.CreateCommand();
|
||||
dataAdapter.SelectCommand.Connection = connectionTxPairToUse.Connection;
|
||||
//TODO register for warnings on connection.
|
||||
@@ -1150,8 +1150,7 @@ namespace Spring.Data.Core
|
||||
#endregion
|
||||
|
||||
ITableMappingCollection mappingCollection = DoCreateMappingCollection(null);
|
||||
return (int)Execute(new DataAdapterFillCallback(dbProvider,
|
||||
dataTable,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataTable,
|
||||
commandType, sql,
|
||||
mappingCollection, null, null, null));
|
||||
}
|
||||
@@ -1173,8 +1172,7 @@ namespace Spring.Data.Core
|
||||
tableMappingName = "Table";
|
||||
}
|
||||
ITableMappingCollection mappingCollection = DoCreateMappingCollection(new string[] { tableMappingName });
|
||||
return (int)Execute(new DataAdapterFillCallback(dbProvider,
|
||||
dataTable,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataTable,
|
||||
commandType, sql,
|
||||
mappingCollection, null, null, null));
|
||||
|
||||
@@ -1185,10 +1183,9 @@ namespace Spring.Data.Core
|
||||
{
|
||||
ValidateFillArguments(dataTable, sql, tableMapping);
|
||||
ITableMappingCollection mappingCollection = new DataTableMappingCollection();
|
||||
mappingCollection.Add(tableMapping);
|
||||
mappingCollection.Add((object)tableMapping);
|
||||
|
||||
return (int)Execute(new DataAdapterFillCallback(dbProvider,
|
||||
dataTable,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataTable,
|
||||
commandType, sql,
|
||||
mappingCollection, null, null, null));
|
||||
}
|
||||
@@ -1200,8 +1197,7 @@ namespace Spring.Data.Core
|
||||
ValidateFillArguments(dataTable, sql, tableMapping);
|
||||
ITableMappingCollection mappingCollection = new DataTableMappingCollection();
|
||||
mappingCollection.Add((object)tableMapping);
|
||||
return (int)Execute(new DataAdapterFillCallback(dbProvider,
|
||||
dataTable,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataTable,
|
||||
commandType, sql,
|
||||
mappingCollection, setter, null, null));
|
||||
}
|
||||
@@ -1216,7 +1212,7 @@ namespace Spring.Data.Core
|
||||
{
|
||||
ValidateFillWithParameterArguments(dataTable, sql, parameters);
|
||||
ITableMappingCollection mappingCollection = DoCreateMappingCollection(null);
|
||||
return (int)Execute(new DataAdapterFillCallback(dbProvider,dataTable,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataTable,
|
||||
commandType, sql,
|
||||
mappingCollection, null, null,
|
||||
parameters));
|
||||
@@ -1232,7 +1228,7 @@ namespace Spring.Data.Core
|
||||
tableMappingName = "Table";
|
||||
}
|
||||
ITableMappingCollection mappingCollection = DoCreateMappingCollection(new string[] { tableMappingName });
|
||||
return (int)Execute(new DataAdapterFillCallback(dbProvider, dataTable,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataTable,
|
||||
commandType, sql,
|
||||
mappingCollection, null, null, parameters));
|
||||
}
|
||||
@@ -1244,7 +1240,7 @@ namespace Spring.Data.Core
|
||||
ValidateFillWithParameterArguments(dataTable, sql, parameters, tableMapping);
|
||||
ITableMappingCollection mappingCollection = new DataTableMappingCollection();
|
||||
mappingCollection.Add((object)tableMapping);
|
||||
return (int)Execute(new DataAdapterFillCallback(dbProvider, dataTable,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataTable,
|
||||
commandType, sql,
|
||||
mappingCollection, null, null, parameters));
|
||||
}
|
||||
@@ -1257,7 +1253,7 @@ namespace Spring.Data.Core
|
||||
ValidateFillWithParameterArguments(dataTable, sql, parameters, tableMapping);
|
||||
ITableMappingCollection mappingCollection = new DataTableMappingCollection();
|
||||
mappingCollection.Add((object)tableMapping);
|
||||
return (int)Execute(new DataAdapterFillCallback(dbProvider, dataTable,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataTable,
|
||||
commandType, sql,
|
||||
mappingCollection, dataAdapterSetter, null, parameters));
|
||||
}
|
||||
@@ -1266,7 +1262,7 @@ namespace Spring.Data.Core
|
||||
#endregion
|
||||
|
||||
#region DataTable Update operations
|
||||
|
||||
//TODO conflict options...
|
||||
|
||||
public int DataTableUpdateWithCommandBuilder(DataTable dataTable,
|
||||
CommandType commandType,
|
||||
@@ -1494,7 +1490,7 @@ namespace Spring.Data.Core
|
||||
|
||||
|
||||
ITableMappingCollection mappingCollection = DoCreateMappingCollection(null);
|
||||
return (int)Execute(new DataAdapterFillCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataSet,
|
||||
commandType, sql,
|
||||
mappingCollection, null, null, null));
|
||||
}
|
||||
@@ -1517,7 +1513,7 @@ namespace Spring.Data.Core
|
||||
tableNames = new string[] { "Table" };
|
||||
}
|
||||
ITableMappingCollection mappingCollection = DoCreateMappingCollection(tableNames);
|
||||
return (int)Execute(new DataAdapterFillCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataSet,
|
||||
commandType, sql,
|
||||
mappingCollection, null, null, null));
|
||||
}
|
||||
@@ -1527,7 +1523,7 @@ namespace Spring.Data.Core
|
||||
ITableMappingCollection tableMapping)
|
||||
{
|
||||
ValidateFillArguments(dataSet, sql, tableMapping);
|
||||
return (int)Execute(new DataAdapterFillCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataSet,
|
||||
commandType, sql,
|
||||
tableMapping, null, null, null));
|
||||
|
||||
@@ -1538,7 +1534,7 @@ namespace Spring.Data.Core
|
||||
IDataAdapterSetter setter)
|
||||
{
|
||||
ValidateFillArguments(dataSet, sql, tableMapping);
|
||||
return (int)Execute(new DataAdapterFillCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataSet,
|
||||
commandType, sql,
|
||||
tableMapping, setter, null, null));
|
||||
|
||||
@@ -1550,7 +1546,7 @@ namespace Spring.Data.Core
|
||||
IDataSetFillLifecycleProcessor fillLifecycleProcessor)
|
||||
{
|
||||
ValidateFillArguments(dataSet, sql, tableMapping);
|
||||
return (int)Execute(new DataAdapterFillCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataSet,
|
||||
commandType, sql,
|
||||
tableMapping, setter, fillLifecycleProcessor, null));
|
||||
|
||||
@@ -1565,7 +1561,7 @@ namespace Spring.Data.Core
|
||||
{
|
||||
ValidateFillWithParameterArguments(dataSet, sql, parameters);
|
||||
ITableMappingCollection mappingCollection = DoCreateMappingCollection(null);
|
||||
return (int)Execute(new DataAdapterFillCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataSet,
|
||||
commandType, sql,
|
||||
mappingCollection, null, null,
|
||||
parameters));
|
||||
@@ -1581,7 +1577,7 @@ namespace Spring.Data.Core
|
||||
tableNames = new string[] { "Table" };
|
||||
}
|
||||
ITableMappingCollection tableMapping = DoCreateMappingCollection(tableNames);
|
||||
return (int)Execute(new DataAdapterFillCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataSet,
|
||||
commandType, sql,
|
||||
tableMapping, null, null, parameters));
|
||||
|
||||
@@ -1592,7 +1588,7 @@ namespace Spring.Data.Core
|
||||
ITableMappingCollection tableMapping)
|
||||
{
|
||||
ValidateFillWithParameterArguments(dataSet, sql, parameters, tableMapping);
|
||||
return (int)Execute(new DataAdapterFillCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataSet,
|
||||
commandType, sql,
|
||||
tableMapping, null, null, parameters));
|
||||
}
|
||||
@@ -1603,7 +1599,7 @@ namespace Spring.Data.Core
|
||||
IDataAdapterSetter dataAdapterSetter)
|
||||
{
|
||||
ValidateFillWithParameterArguments(dataSet, sql, parameters, tableMapping);
|
||||
return (int)Execute(new DataAdapterFillCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataSet,
|
||||
commandType, sql,
|
||||
tableMapping, dataAdapterSetter, null, parameters));
|
||||
}
|
||||
@@ -1615,7 +1611,7 @@ namespace Spring.Data.Core
|
||||
IDataSetFillLifecycleProcessor fillLifecycleProcessor)
|
||||
{
|
||||
ValidateFillWithParameterArguments(dataSet, sql, parameters, tableMapping);
|
||||
return (int)Execute(new DataAdapterFillCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterFillCallback(dataSet,
|
||||
commandType, sql,
|
||||
tableMapping, dataAdapterSetter, fillLifecycleProcessor, parameters));
|
||||
}
|
||||
@@ -1685,7 +1681,7 @@ namespace Spring.Data.Core
|
||||
|
||||
ITableMappingCollection mappingCollection = DoCreateMappingCollection(new string[] { tableName });
|
||||
|
||||
return (int)Execute(new DataAdapterUpdateCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterUpdateCallback(dataSet,
|
||||
mappingCollection,
|
||||
insertCommand,
|
||||
updateCommand,
|
||||
@@ -1726,7 +1722,7 @@ namespace Spring.Data.Core
|
||||
}
|
||||
ITableMappingCollection mappingCollection = DoCreateMappingCollection(new string[] { tableName });
|
||||
|
||||
int returnVal = (int)Execute(new DataAdapterUpdateCallback(DbProvider, dataSet, mappingCollection,
|
||||
int returnVal = (int)Execute(new DataAdapterUpdateCallback(dataSet, mappingCollection,
|
||||
insertCommand, updateCommand, deleteCommand, null));
|
||||
|
||||
if (insertSql != null)
|
||||
@@ -1755,7 +1751,7 @@ namespace Spring.Data.Core
|
||||
{
|
||||
ValidateUpdateArguments(dataSet, tableName);
|
||||
ITableMappingCollection tableMapping = DoCreateMappingCollection(new string[] { tableName });
|
||||
return (int)Execute(new DataAdapterUpdateCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterUpdateCallback(dataSet,
|
||||
tableMapping,
|
||||
insertCommand,
|
||||
updateCommand,
|
||||
@@ -1771,7 +1767,7 @@ namespace Spring.Data.Core
|
||||
IDbCommand deleteCommand)
|
||||
{
|
||||
ValidateUpdateArguments(dataSet, tableMapping);
|
||||
return (int)Execute(new DataAdapterUpdateCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterUpdateCallback(dataSet,
|
||||
tableMapping,
|
||||
insertCommand,
|
||||
updateCommand,
|
||||
@@ -1787,7 +1783,7 @@ namespace Spring.Data.Core
|
||||
IDataAdapterSetter dataAdapterSetter)
|
||||
{
|
||||
ValidateUpdateArguments(dataSet, tableMapping);
|
||||
return (int)Execute(new DataAdapterUpdateCallback(DbProvider, dataSet,
|
||||
return (int)Execute(new DataAdapterUpdateCallback(dataSet,
|
||||
tableMapping,
|
||||
insertCommand,
|
||||
updateCommand,
|
||||
@@ -1877,7 +1873,7 @@ namespace Spring.Data.Core
|
||||
ParameterUtils.CopyParameters(deleteCommand, deleteParameters);
|
||||
}
|
||||
|
||||
int returnVal = (int)Execute(new DataAdapterUpdateCallback(DbProvider, dataTable, mappingCollection,
|
||||
int returnVal = (int)Execute(new DataAdapterUpdateCallback(dataTable, mappingCollection,
|
||||
insertCommand, updateCommand, deleteCommand, null));
|
||||
|
||||
if (insertSql != null)
|
||||
@@ -2165,11 +2161,9 @@ namespace Spring.Data.Core
|
||||
private ITableMappingCollection mappingCollection;
|
||||
private IDataAdapterSetter dataAdapterSetter;
|
||||
private IDataSetFillLifecycleProcessor fillLifecycleProcessor;
|
||||
private IDbParameters parameters;
|
||||
private IDbProvider dbProvider;
|
||||
private IDbParameters parameters;
|
||||
|
||||
public DataAdapterFillCallback(IDbProvider dbProvider,
|
||||
DataSet dataSet,
|
||||
public DataAdapterFillCallback(DataSet dataSet,
|
||||
CommandType commandType,
|
||||
string sql,
|
||||
ITableMappingCollection mappingCollection,
|
||||
@@ -2177,8 +2171,7 @@ namespace Spring.Data.Core
|
||||
IDataSetFillLifecycleProcessor fillLifecycleProcessor,
|
||||
IDbParameters parameters)
|
||||
{
|
||||
containsDataSet = true;
|
||||
this.dbProvider = dbProvider;
|
||||
containsDataSet = true;
|
||||
this.dataSet = dataSet;
|
||||
this.commandType = commandType;
|
||||
this.sql = sql;
|
||||
@@ -2186,10 +2179,9 @@ namespace Spring.Data.Core
|
||||
this.dataAdapterSetter = dataAdapterSetter;
|
||||
this.fillLifecycleProcessor = fillLifecycleProcessor;
|
||||
this.parameters = parameters;
|
||||
}
|
||||
|
||||
public DataAdapterFillCallback(IDbProvider dbProvider,
|
||||
DataTable dataTable,
|
||||
}
|
||||
|
||||
public DataAdapterFillCallback(DataTable dataTable,
|
||||
CommandType commandType,
|
||||
string sql,
|
||||
ITableMappingCollection mappingCollection,
|
||||
@@ -2197,8 +2189,7 @@ namespace Spring.Data.Core
|
||||
IDataSetFillLifecycleProcessor fillLifecycleProcessor,
|
||||
IDbParameters parameters)
|
||||
{
|
||||
containsDataSet = false;
|
||||
this.dbProvider = dbProvider;
|
||||
containsDataSet = false;
|
||||
this.dataTable = dataTable;
|
||||
this.commandType = commandType;
|
||||
this.sql = sql;
|
||||
@@ -2211,14 +2202,9 @@ namespace Spring.Data.Core
|
||||
|
||||
|
||||
public object DoInDataAdapter(IDbDataAdapter dataAdapter)
|
||||
{
|
||||
ConnectionTxPair connectionTxPairToUse = ConnectionUtils.GetConnectionTxPair(dbProvider);
|
||||
dataAdapter.SelectCommand.Connection = connectionTxPairToUse.Connection;
|
||||
dataAdapter.SelectCommand.Transaction = connectionTxPairToUse.Transaction;
|
||||
|
||||
{
|
||||
dataAdapter.SelectCommand.CommandType = commandType;
|
||||
dataAdapter.SelectCommand.CommandText = sql;
|
||||
|
||||
dataAdapter.SelectCommand.CommandText = sql;
|
||||
//TODO investigate performance of cloning....would need to change signature to
|
||||
// DataTableMapping[] otherwise...
|
||||
foreach (DataTableMapping dataTableMapping in mappingCollection)
|
||||
@@ -2277,13 +2263,16 @@ namespace Spring.Data.Core
|
||||
private IDbCommand insertCommand;
|
||||
private IDbCommand updateCommand;
|
||||
private IDbCommand deleteCommand;
|
||||
private IDataAdapterSetter dataAdapterSetter;
|
||||
private IDbProvider dbProvider;
|
||||
private IDataAdapterSetter dataAdapterSetter;
|
||||
|
||||
public DataAdapterUpdateCallback(IDbProvider dbProvider, DataSet dataSet, ITableMappingCollection mappingCollection, IDbCommand insertCommand, IDbCommand updateCommand, IDbCommand deleteCommand, IDataAdapterSetter dataAdapterSetter)
|
||||
public DataAdapterUpdateCallback(DataSet dataSet,
|
||||
ITableMappingCollection mappingCollection,
|
||||
IDbCommand insertCommand,
|
||||
IDbCommand updateCommand,
|
||||
IDbCommand deleteCommand,
|
||||
IDataAdapterSetter dataAdapterSetter)
|
||||
{
|
||||
containsDataSet = true;
|
||||
this.dbProvider = dbProvider;
|
||||
containsDataSet = true;
|
||||
this.dataSet = dataSet;
|
||||
this.mappingCollection = mappingCollection;
|
||||
this.insertCommand = insertCommand;
|
||||
@@ -2292,10 +2281,14 @@ namespace Spring.Data.Core
|
||||
this.dataAdapterSetter = dataAdapterSetter;
|
||||
}
|
||||
|
||||
public DataAdapterUpdateCallback(IDbProvider dbProvider, DataTable dataTable, ITableMappingCollection mappingCollection, IDbCommand insertCommand, IDbCommand updateCommand, IDbCommand deleteCommand, IDataAdapterSetter dataAdapterSetter)
|
||||
public DataAdapterUpdateCallback(DataTable dataTable,
|
||||
ITableMappingCollection mappingCollection,
|
||||
IDbCommand insertCommand,
|
||||
IDbCommand updateCommand,
|
||||
IDbCommand deleteCommand,
|
||||
IDataAdapterSetter dataAdapterSetter)
|
||||
{
|
||||
containsDataSet = false;
|
||||
this.dbProvider = dbProvider;
|
||||
containsDataSet = false;
|
||||
this.dataTable = dataTable;
|
||||
this.mappingCollection = mappingCollection;
|
||||
this.insertCommand = insertCommand;
|
||||
@@ -2306,11 +2299,7 @@ namespace Spring.Data.Core
|
||||
#region IDataAdapterCallback Members
|
||||
|
||||
public object DoInDataAdapter(IDbDataAdapter dataAdapter)
|
||||
{
|
||||
ConnectionTxPair connectionTxPairToUse = ConnectionUtils.GetConnectionTxPair(dbProvider);
|
||||
dataAdapter.SelectCommand.Connection = connectionTxPairToUse.Connection;
|
||||
dataAdapter.SelectCommand.Transaction = connectionTxPairToUse.Transaction;
|
||||
|
||||
{
|
||||
//TODO - did not make copies of parameters...
|
||||
if (insertCommand == null && updateCommand == null && deleteCommand == null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user