Language

The Free and Open Productivity Suite
Released: Apache OpenOffice 4.1.15

API

SDK

Tips ‘n’ Tricks

Miscellaneous


:: com :: sun :: star :: sdb ::

interface XSingleSelectQueryComposer
Base Interfaces
XSingleSelectQueryComposerXSingleSelectQueryAnalyzer

XSingleSelectQueryAnalyzer
(referenced interface's summary:)
simplifies the analyzing of single select statements.
Description
simplifies the composing of single select statements.

The interface can be used for composing single SELECT statements without knowing the structure of the used query.

See also
SingleSelectQueryComposer

Methods' Summary
setFilter makes it possible to set a filter condition for the query.  
setStructuredFilter appends a new set of filter criteria which is split into levels.  
appendFilterByColumn appends a new filter condition by a DataColumn providing the name and the value for the filter. The value property must be supported by the DataColumn.  
setGroup makes it possibile to set a group for the query.  
appendGroupByColumn appends an additional part to the group criteria of the select statement. The column must be a ::com::sun::star::sdbcx::Column.  
setHavingClause makes it possible to set a HAVING filter condition for the query.  
setStructuredHavingClause appends a new set of HAVING filter criteria which is split into levels.  
appendHavingClauseByColumn appends a new HAVING filter condition by a DataColumn providing the name and the value for the filter.  
setOrder makes it possibile to set a sort condition for the query.  
appendOrderByColumn appends an additional part to the sort order criteria of the select statement. The column must be a ::com::sun::star::sdbcx::Column.  
Attributes' Summary
ElementaryQuery sets a new elementary query for the composer  
Methods' Details
setFilter
void
setFilter( [in] string  filter )
raises( ::com::sun::star::sdbc::SQLException );

Description
makes it possible to set a filter condition for the query.
Parameter filter
the filter to set
Throws
com::sun::star::sdbc::SQLException if a database access error occurs or the statement isn't valid or the statement isn't parseable.
setStructuredFilter
void
setStructuredFilter( [in] sequence< sequence< ::com::sun::star::beans::PropertyValue > >  filter )
raises( ::com::sun::star::sdbc::SQLException,
::com::sun::star::lang::IllegalArgumentException );

Description
appends a new set of filter criteria which is split into levels.
Parameter filter
The filter criteria is split into levels. Each level represents the OR criterias. Within each level, the filters are provided as an AND criteria with the name of the column and the filter condition. The filter condition is of type string. The operator used, is defined by SQLFilterOperator.
Throws
com::sun::star::sdbc::SQLException if a database access error occurs.
appendFilterByColumn
void
appendFilterByColumn( [in] ::com::sun::star::beans::XPropertySet  column,
[in] boolean  andCriteria,
[in] long  filterOperator )
raises( ::com::sun::star::sdbc::SQLException );

Description
appends a new filter condition by a DataColumn providing the name and the value for the filter. The value property must be supported by the DataColumn.
Parameter column
the column which is used to create a filter
Parameter andCriteria
If true the filter condition will be appended as an AND condition, otherwise the new filter condition will be appended as OR criteria. E.g. (xx AND bb AND cc) OR newCriteria
Parameter filterOperator
The operator used, is defined by SQLFilterOperator.
Throws
com::sun::star::sdbc::SQLException if a database access error occurs.
setGroup
void
setGroup( [in] string  group )
raises( ::com::sun::star::sdbc::SQLException );

Description
makes it possibile to set a group for the query.
Parameter group
the group part to set
Throws
com::sun::star::sdbc::SQLException if a database access error occurs or the statement isn't valid or the statement isn't parseable..
appendGroupByColumn
void
appendGroupByColumn( [in] ::com::sun::star::beans::XPropertySet  column )
raises( ::com::sun::star::sdbc::SQLException );

Description
appends an additional part to the group criteria of the select statement. The column must be a ::com::sun::star::sdbcx::Column.
Parameter column
the column which is used to create a group part
Throws
com::sun::star::sdbc::SQLException if a database access error occurs.
setHavingClause
void
setHavingClause( [in] string  filter )
raises( ::com::sun::star::sdbc::SQLException );

Description
makes it possible to set a HAVING filter condition for the query.
Parameter filter
the filter to set
Throws
com::sun::star::sdbc::SQLException if a database access error occurs or the statement isn't valid or the statement isn't parseable.
setStructuredHavingClause
void
setStructuredHavingClause( [in] sequence< sequence< ::com::sun::star::beans::PropertyValue > >  filter )
raises( ::com::sun::star::sdbc::SQLException );

Description
appends a new set of HAVING filter criteria which is split into levels.
Parameter filter
The HAVING filter criteria is split into levels. Each level represents the OR criterias. Within each level, the filters are provided as an AND criteria with the name of the column and the filter condition. The filter condition is of type string. The operator used, is defined by SQLFilterOperator.
Throws
com::sun::star::sdbc::SQLException if a database access error occurs.
appendHavingClauseByColumn
void
appendHavingClauseByColumn( [in] ::com::sun::star::beans::XPropertySet  column,
[in] boolean  andCriteria,
[in] long  filterOperator )
raises( ::com::sun::star::sdbc::SQLException );

Description
appends a new HAVING filter condition by a DataColumn providing the name and the value for the filter.
Parameter column
the column which is used to create a filter
Parameter andCriteria
If true the filter condition will be appended as an AND condition, otherwise the new filter condition will be appended as OR criteria. E.g. (xx AND bb AND cc) OR newCriteria
Parameter filterOperator
The operator used, is defined by SQLFilterOperator.
Throws
com::sun::star::sdbc::SQLException if a database access error occurs.
setOrder
void
setOrder( [in] string  order )
raises( ::com::sun::star::sdbc::SQLException );

Description
makes it possibile to set a sort condition for the query.
Parameter order
the order part to set
Throws
com::sun::star::sdbc::SQLException if a database access error occurs or the order isn't valid or the statement isn't parseable.
appendOrderByColumn
void
appendOrderByColumn( [in] ::com::sun::star::beans::XPropertySet  column,
[in] boolean  ascending )
raises( ::com::sun::star::sdbc::SQLException );

Description
appends an additional part to the sort order criteria of the select statement. The column must be a ::com::sun::star::sdbcx::Column.
Parameter column
the column which is used to create a order part
Parameter ascending
true when the order should be ascending, otherwise if false descending.
Throws
com::sun::star::sdbc::SQLException if a database access error occurs.
Attributes' Details
ElementaryQuery
string ElementaryQuery
set raises (::com::sun::star::sdbc::SQLException);

Description
sets a new elementary query for the composer

An elementary query or statement is a (single select) statement whose parts are not covered by the various set and get methods of the composer. That is, if the elementary statement contains a filter clause, a call to XSingleSelectQueryAnalyzer::getFilter will not return you this filter. Instead, only filters which have been set using for instance setFilter are covered by the get methods.

The only methods which take all parts of the elementary statement into account are XSingleSelectQueryAnalyzer::getQuery and XSingleSelectQueryAnalyzer::getQueryWithSubstitution, which always returns the complete composed query.

As a result, you can use the composer to build culmulative filter expressions. That is, you can set ElementaryQuery to a statement already containing filters, and then use setFilter to append additional filters.

The very same holds for sort orders, HAVING and GROUP BY clauses.

There are various use cases for this. For instance, you might want to use the statement represented by a QueryDefinition, and extend it with additional filters or sort orders, while not touching the respective parts already present in QueryDefinition::Command. This can be achieved by setting the QueryDefinition::Command as ElementaryQuery of a SingleSelectQueryComposer.

If, in such a scenario, you would be interested in the filter part of the QueryDefinition::Command, you would set it via XSingleSelectQueryAnalyzer::setQuery, and retrieve the filter part via XSingleSelectQueryAnalyzer::getFilter.

If you'd be interested in the composed filter, you would set the QueryDefinition::Command as ElementaryQuery, add your filter, and propagate the resulting query (XSingleSelectQueryAnalyzer::getQuery) to an SingleSelectQueryAnalyzer instance via XSingleSelectQueryAnalyzer::setQuery.

Top of Page

Apache Software Foundation

Copyright & License | Privacy | Contact Us | Donate | Thanks

Apache, OpenOffice, OpenOffice.org and the seagull logo are registered trademarks of The Apache Software Foundation. The Apache feather logo is a trademark of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.