Querying for Summary Data
The following Java™ and C# examples query for summary data objects
that are associated with all document version series.
The
code prints document and summary data properties from the result set.
About this task
Java Example
// Create a SearchSQL instance and specify the SQL statement (using the helper methods).
SearchSQL sqlObject = new SearchSQL();
sqlObject.setSelectList("T1.DocumentTitle, T2.ClbRecommendationCount, "
+ "T2.ClbCommentCount, T2.ClbDownloadCount, T2.ClbSummaryVersionSeries");
sqlObject.setFromClauseInitialValue("Document", "T1", true); // retrieve subclasses
sqlObject.setFromClauseAdditionalJoin(JoinOperator.LEFT_OUTER,"ClbSummaryData","T2",
"T1.VersionSeries", JoinComparison.EQUAL, "T2.ClbSummaryVersionSeries", false);
sqlObject.setOrderByClause("T2.ClbRecommendationCount DESC");
sqlObject.setDistinct(); // suppress redundant rows
// Create a SearchScope instance. (Assumes you have the object store object.)
SearchScope search = new SearchScope(os);
// Execute the fetchRows method using the specified parameters.
Boolean continuable = new Boolean(true);
RepositoryRowSet myRows = search.fetchRows(sqlObject, null, null, continuable);
// Iterate the collection of rows to access the properties.
Iterator iter = myRows.iterator();
while (iter.hasNext())
{
RepositoryRow row = (RepositoryRow) iter.next();
// Print properties from the result set.
System.out.print("\nDocumentTitle: " + row.getProperties().get("DocumentTitle").getStringValue() +
"\nNo. Recommendations: " + row.getProperties().get("ClbRecommendationCount").getInteger32Value() +
"\nNo. Comments: " + row.getProperties().get("ClbCommentCount").getInteger32Value() +
"\nNo. Downloads: " + row.getProperties().get("ClbDownloadCount").getInteger32Value() + "\n" );
} C# Example
// Create a SearchSQL instance and specify the SQL statement (using the helper methods).
SearchSQL sqlObject = new SearchSQL();
sqlObject.SetSelectList("T1.DocumentTitle, T2.ClbRecommendationCount, "
+ "T2.ClbCommentCount, T2.ClbDownloadCount, T2.ClbSummaryVersionSeries");
sqlObject.SetFromClauseInitialValue("Document", "T1", true); // retrieve subclasses
sqlObject.SetFromClauseAdditionalJoin(JoinOperator.LEFT_OUTER,"ClbSummaryData","T2",
"T1.VersionSeries", JoinComparison.EQUAL, "T2.ClbSummaryVersionSeries", false);
sqlObject.SetOrderByClause("T2.ClbRecommendationCount DESC");
sqlObject.SetDistinct(); // supress redundant rows
// Create a SearchScope instance. (Assumes you have the object store object.)
SearchScope search = new SearchScope(os);
// Execute the fetchRows method using the specified parameters.
bool continuable = true;
IRepositoryRowSet myRows = search.FetchRows(sqlObject, null, null, continuable);
// Iterate the collection of rows to access the properties.
foreach (IRepositoryRow row in myRows)
{
// Print properties from the result set.
System.Console.WriteLine("\nDocumentTitle: " + row.Properties.GetProperty("DocumentTitle").GetStringValue() +
"\nNo. Recommendations: " + row.Properties.GetProperty("ClbRecommendationCount").GetInteger32Value() +
"\nNo. Comments: " + row.Properties.GetProperty("ClbCommentCount").GetInteger32Value() +
"\nNo. Downloads: " + row.Properties.GetProperty("ClbDownloadCount").GetInteger32Value() + "\n" );
}