QBSelect

Overview

QBSelect is a wrapper for building SQL SELECT queries in Servoy, providing a flexible API to add conditions, sorting, grouping, joins, and parameters to SQL-based queries. Through structured access to clauses like where, groupBy, and joins, QBSelect supports complex query construction and parameterized queries.

For detailed query building, see Query Builder in the Servoy documentation.

Properties Summarized

Type
Name
Summary

Get the aggregates clause from a query, used for aggregates that are not tied to a column.

Create an AND-condition to add conditions to.

Create an case searched expression.

Get all the columns of the datasource that can be used for this query (select or where clause)

Specifies a comment of the query.

Get the functions clause from a query, used for functions that are not tied to a column.

Get the group by clause from a query

Get the having-part of the query, used to add conditions.

Get the joins clause of this table based clause.

Create an OR-condition to add conditions to.

Get the named parameters from a query.

Get query builder parent table clause, this may be a query or a join clause.

Get the result part of the query, used to add result columns or values.

Get query builder parent.

Get the sorting part of the query.

Get the where-part of the query, used to add conditions.

Methods Summarized

Type
Name
Summary

Clear the having-part of the query.

Get an exists-condition from a subquery

Get a column from the table.

Get a column from the table with given alias.

Performs a sql query with a query builder object.

Performs a sql query with a query builder object.

Returns the datasource for this.

Returns a foundset object for a specified pk base query.

Get or create a parameter for the query, this used to parameterize queries.

Returns the internal SQL of the QBSelect.

Returns the internal SQL of the QBSelect.

Returns the parameters for the internal SQL of the QBSelect.

Returns the parameters for the internal SQL of the QBSelect.

Returns the table alias for this.

Create an inlined value.

Create an inlined value converted to the type of the column.

Create an inlined (quoted) value.

Create an negated condition.

Create an negated condition.

Properties Detailed

aggregates

Get the aggregates clause from a query, used for aggregates that are not tied to a column.

Type QBAggregates the aggregates clause of the query for non-column-bound aggregates.

Sample

and

Create an AND-condition to add conditions to.

Type QBLogicalCondition an AND-condition for adding logical conditions.

Sample

case

Create an case searched expression.

Type QBCase a case expression for conditional logic in the query.

Sample

columns

Get all the columns of the datasource that can be used for this query (select or where clause)

Type QBColumns

Sample

comment

Specifies a comment of the query.

Type String the comment associated with this query.

Sample

functions

Get the functions clause from a query, used for functions that are not tied to a column.

Type QBFunctions the functions clause of the query for non-column-bound functions.

Sample

groupBy

Get the group by clause from a query

Type QBGroupBy the group-by clause of the query.

Sample

having

Get the having-part of the query, used to add conditions. The conditions added here are AND-ed.

Type QBLogicalCondition the having-part of the query for adding conditions.

Sample

joins

Get the joins clause of this table based clause. Joins added to this clause will be based on this table clauses table.

Type QBJoins

Sample

or

Create an OR-condition to add conditions to.

Type QBLogicalCondition an OR-condition for adding logical conditions.

Sample

params

Get the named parameters from a query.

Type QBParameters the named parameters of the query.

Sample

parent

Get query builder parent table clause, this may be a query or a join clause.

Type QBTableClause

Sample

result

Get the result part of the query, used to add result columns or values.

Type QBResult the result part of the query for adding result columns or values.

Sample

root

Get query builder parent.

Type QBSelect

Sample

sort

Get the sorting part of the query.

Type QBSorts the sorting part of the query.

Sample

where

Get the where-part of the query, used to add conditions. The conditions added here are AND-ed.

Type QBWhereCondition the where-part of the query for adding conditions.

Sample

Methods Detailed

clearHaving()

Clear the having-part of the query.

Returns: QBSelect the updated query builder after clearing the having clause.

Sample

exists(query)

Get an exists-condition from a subquery

Parameters

Returns: QBCondition a condition that checks the existence of the given subquery.

Sample

getColumn(name)

Get a column from the table.

Parameters

  • String name the name of column to get

Returns: QBColumn the QBColumn representing the specified column name.

Sample

getColumn(columnTableAlias, name)

Get a column from the table with given alias. The alias may be of the main table or any level deep joined table.

Parameters

  • String columnTableAlias the alias for the table

  • String name the name of column to get

Returns: QBColumn the QBColumn representing the specified column from the table with the given alias.

Sample

getDataSet(max_returned_rows)

Performs a sql query with a query builder object. Same as databaseManager.getDataSetByQuery. Will throw an exception if anything did go wrong when executing the query.

Using this variation of getDataSet any Tablefilter on the involved tables will be taken into account.

Parameters

  • Number max_returned_rows The maximum number of rows returned by the query.

Returns: JSDataSet The JSDataSet containing the results of the query.

Sample

getDataSet(max_returned_rows, useTableFilters)

Performs a sql query with a query builder object. Same as databaseManager.getDataSetByQuery. Will throw an exception if anything did go wrong when executing the query.

Parameters

  • Number max_returned_rows The maximum number of rows returned by the query.

  • Boolean useTableFilters use table filters (default true).

Returns: JSDataSet The JSDataSet containing the results of the query.

Sample

getDataSource()

Returns the datasource for this.

Returns: String the dataSource

getFoundSet()

Returns a foundset object for a specified pk base query. Same as databaseManager.getFoundSet(QBSelect).

Returns: JSFoundSet A new JSFoundset with the query as its base query.

Sample

getParameter(name)

Get or create a parameter for the query, this used to parameterize queries.

Parameters

  • String name the name of the parameter

Returns: QBParameter the parameter with the specified name.

Sample

getSQL()

Returns the internal SQL of the QBSelect. Table filters are on by default.

Returns: String String representing the sql of the Query Builder.

Sample

getSQL(includeFilters)

Returns the internal SQL of the QBSelect. Table filters are on by default.

Parameters

  • Boolean includeFilters include the table filters [default true].

Returns: String String representing the sql of the Query Builder.

Sample

getSQLParameters()

Returns the parameters for the internal SQL of the QBSelect. Table filters are on by default.

Returns: Array An Array with the sql parameter values.

Sample

getSQLParameters(includeFilters)

Returns the parameters for the internal SQL of the QBSelect. Table filters are on by default.

Parameters

  • Boolean includeFilters include the table filters [default true].

Returns: Array An Array with the sql parameter values.

Sample

getTableAlias()

Returns the table alias for this.

Returns: String the tableAlias

inline(number)

Create an inlined value. An inlined value is a value that will appear literally in the resulting sql. For example

results in sql

And

results in sql

with prepared statement value 200.

Inlined values can be used in situations where prepared statement expressions give sql problems, for example in some group-by clauses.

Note that using the same query with different inlined values effectively disables prepared statement caching for the query and may have a negative performance impact.

In case of a string will the value be validated, values that contain a single quote will not be inlined.

Parameters

Returns: Object an inlined value appearing literally in the resulting SQL.

Sample

inline(number, columnForType)

Create an inlined value converted to the type of the column.

Parameters

  • Number number value to inline

  • QBColumn columnForType convert value to type of the column

Returns: Object an inlined value converted to the type of the specified column.

Sample

inline(string)

Create an inlined (quoted) value.

Parameters

Returns: Object an inlined (quoted) string value.

Sample

not(cond)

Create an negated condition.

Parameters

Returns: QBCondition a negated version of the specified condition.

Sample

not(cond)

Create an negated condition.

Parameters

Returns: QBCondition a negated version of the specified logical condition.

Sample


Last updated

Was this helpful?