Follow up to the same topic. I now have the correct SQL being generated and when I run the SQL against the database, I get back the correct number of rows. I converted my code to use a Dynamic List instead of a TypedList, BUT, when I execute the FetchTypedList, my datatable is not being populated with any rows. Here is my code:
...
RelationPredicateBucket Filter = new RelationPredicateBucket();
Filter.Relations.Add(VOracleClusterDetailEntity.Relations.ApplicationEntityUsingAppId);
switch (QTR)
{
default:
ResultsetFields _rs = new ResultsetFields(7);
_rs.DefineField(VOracleClusterDetailFields.RacEnvId, 0);
_rs.DefineField(VOracleClusterDetailFields.MachineId, 1);
_rs.DefineField(VOracleClusterDetailFields.ProductNm, 2);
_rs.DefineField(VOracleClusterDetailFields.InstanceNm, 3);
_rs.DefineField(VOracleClusterDetailFields.Version, 4);
_rs.DefineField(VOracleClusterDetailFields.AppId, 5);
_rs.DefineField(ApplicationFields.ApplicationShortNm, 6);
Filter.PredicateExpression.Add(VOracleClusterDetailFields.RacEnvId % FilterExpression);
if (Sorter == null)
{
ISortExpression sorter = new SortExpression();
sorter.Add(VOracleClusterDetailFields.RacEnvId | SortOperator.Ascending);
sorter.Add(VOracleClusterDetailFields.MachineId | SortOperator.Ascending);
sorter.Add(VOracleClusterDetailFields.ProductNm | SortOperator.Ascending);
sorter.Add(VOracleClusterDetailFields.InstanceNm | SortOperator.Ascending);
Sorter = sorter;
}
_GV.DataSource = ddh.GetOracleClusterNodesDistinct(Filter, Sorter, true, _rs);
...
public DataTable GetOracleClusterNodesDistinct(IRelationPredicateBucket irpb, ISortExpression ise, bool bExactMatch, ResultsetFields rs)
{
DataTable _dt = new DataTable();
using (DataAccessAdapter adapter = new DataAccessAdapter())
{
try
{
adapter.FetchTypedList(rs, _dt, irpb, 0, ise, false);
}
catch (Exception ex)
{
}
}
return _dt;
}
This code works fine if I do not include
Filter.Relations.Add(VOracleClusterDetailEntity.Relations.ApplicationEntityUsingAppId);
and the ApplicationShortNm field from the application table.
Maybe I am going about the the wrong way, but I am attempting to select only certain columns from a view joined to a single table and include a DISTINCT keyword. I have several slightly different queries I need to run against this view + table combo and I didn't want to have to create a TypedList or view for each one.
Suggestions?