SPRNET-1200 - Default names for DataTables not generated correctly when filling DataSet from query that returns multiple result sets.
This commit is contained in:
@@ -2128,13 +2128,15 @@ namespace Spring.Data.Core
|
||||
}
|
||||
}
|
||||
mappingCollection = new DataTableMappingCollection();
|
||||
int counter = 0;
|
||||
int counter = 0;
|
||||
bool isFirstTable = true;
|
||||
foreach (string dataSetTableName in dataSetTableNames)
|
||||
{
|
||||
string sourceTableName;
|
||||
if (counter == 0)
|
||||
if (isFirstTable)
|
||||
{
|
||||
sourceTableName = "Table";
|
||||
sourceTableName = "Table";
|
||||
isFirstTable = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -90,7 +90,22 @@ namespace Spring.Data
|
||||
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void FillDataSetWithTwoDataTables()
|
||||
{
|
||||
PopulateTestObjectsTable();
|
||||
PopulateCreditObjectsTable();
|
||||
string testObjectsql = ValidateTestObjects(4);
|
||||
string creditObjectsql = ValidateCreditObjects(4);
|
||||
|
||||
DataSet dataSet;
|
||||
|
||||
dataSet = new DataSet();
|
||||
adoOperations.DataSetFill(dataSet, CommandType.Text, testObjectsql + ";" + creditObjectsql, new string[] { "TestObjects", "CreditObjects" });
|
||||
Assert.AreEqual(2, dataSet.Tables.Count);
|
||||
Assert.AreEqual(4, dataSet.Tables["TestObjects"].Rows.Count);
|
||||
Assert.AreEqual(4, dataSet.Tables["CreditObjects"].Rows.Count);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void FillDataSetNoParams()
|
||||
@@ -162,6 +177,16 @@ namespace Spring.Data
|
||||
}
|
||||
}
|
||||
|
||||
private void PopulateCreditObjectsTable()
|
||||
{
|
||||
adoOperations.ExecuteNonQuery(CommandType.Text, "truncate table Credits");
|
||||
for (int i=0; i<4; i++)
|
||||
{
|
||||
String sql = String.Format("insert into Credits(CreditAmount) VALUES ('{0}')", i+10);
|
||||
adoOperations.ExecuteNonQuery(CommandType.Text, sql);
|
||||
}
|
||||
}
|
||||
|
||||
private string ValidateTestObjects(int count)
|
||||
{
|
||||
String sql = "select TestObjectNo, Age, Name from TestObjects";
|
||||
@@ -172,6 +197,16 @@ namespace Spring.Data
|
||||
return sql;
|
||||
}
|
||||
|
||||
private string ValidateCreditObjects(int count)
|
||||
{
|
||||
String sql = "select CreditID, CreditAmount from Credits";
|
||||
DataSet dataSet = new DataSet();
|
||||
adoOperations.DataSetFill(dataSet, CommandType.Text, sql);
|
||||
Assert.AreEqual(1, dataSet.Tables.Count);
|
||||
Assert.AreEqual(count, dataSet.Tables["Table"].Rows.Count);
|
||||
return sql;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void DoUpdateDataSet()
|
||||
@@ -223,13 +258,11 @@ namespace Spring.Data
|
||||
[Test]
|
||||
public void ExecuteQueryWithResultSetExtractor()
|
||||
{
|
||||
PopulateTestObjectsTable();
|
||||
IResultSetExtractor rse = new TestObjectExtractor();
|
||||
String sql = "select TestObjectNo, Age, Name from TestObjects";
|
||||
IList testObjectList = (IList)adoOperations.QueryWithResultSetExtractor(CommandType.Text, sql, rse);
|
||||
Assert.AreEqual(1, testObjectList.Count);
|
||||
|
||||
|
||||
|
||||
Assert.AreEqual(4, testObjectList.Count);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3,9 +3,12 @@
|
||||
xmlns:db="http://www.springframework.net/database">
|
||||
|
||||
|
||||
|
||||
<db:provider id="DbProvider"
|
||||
|
||||
connectionString="Data Source=MARKT60\SQL2005;Initial Catalog=Spring;Persist Security Info=True;User ID=springqa;Password=springqa"/>
|
||||
provider="SqlServer-2.0"
|
||||
connectionString="Data Source=SPRINGQA;Database=Spring;Trusted_Connection=False;User ID=springqa;Password=springqa"/>
|
||||
|
||||
<!-- connectionString="Data Source=MARKT60\SQL2005;Initial Catalog=Spring;Persist Security Info=True;User ID=springqa;Password=springqa"/> -->
|
||||
|
||||
|
||||
<object id="adoTemplate" type="Spring.Data.Core.AdoTemplate, Spring.Data">
|
||||
|
||||
Reference in New Issue
Block a user