QBWhereCondition

Overview

The QBWhereCondition class is an essential component for managing the WHERE clause in queries within the Servoy environment. It provides flexibility for dynamically adding, removing, and clearing conditions in a query, making it easier to build complex SQL conditions. Through methods such as js_add() and add(), conditions can be added to the logical condition list, allowing both unnamed and named conditions to be incorporated into the query. These conditions can be specified programmatically or by name, offering significant versatility in query construction.

The class offers robust functionality to handle the logical structure of conditions with methods like getQueryCondition(), which retrieves or creates the AndOrCondition for the query. The getQueryCondition(boolean create) variant ensures that the condition is generated when needed, providing more control over the query construction process.

Additional methods like remove() and clear() allow for easy modification of the condition list. The remove() method enables the removal of named conditions from the logical group, while clear() resets all conditions in the WHERE clause, facilitating full control over the query structure.

Properties Summarized

Type
Name
Summary

Get the names for the conditions in the logical condition.

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

Get query builder parent.

Methods Summarized

Type
Name
Summary

Add a condition to the AND or OR condition list.

Add a named condition to the AND or OR condition list.

Clear the conditions in the query where-clause.

Get a named condition in the logical condition.

Remove a named condition from the AND or OR condition list.

Properties Detailed

conditionnames

Get the names for the conditions in the logical condition.

Type Array

Sample

var cond = query.getCondition('mycond')
for (var cname in cond.conditionnames)
{
	var subcond = cond.getCondition(cname)
}

parent

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

Type QBTableClause

Sample

var query = datasources.db.example_data.person.createSelect();
	query.where.add(query.joins.person_to_parent.joins.person_to_parent.columns.name.eq('john'))
	foundset.loadRecords(query)

root

Get query builder parent.

Type QBSelect

Sample

var subquery = datasources.db.example_data.order_details.createSelect();

	var query = datasources.db.example_data.orders.createSelect();
	query.where.add(query
		.or
			.add(query.columns.order_id.not.isin([1, 2, 3]))

			.add(query.exists(
					subquery.where.add(subquery.columns.orderid.eq(query.columns.order_id)).root
			))
		)

	foundset.loadRecords(query)

Methods Detailed

add(condition)

Add a condition to the AND or OR condition list.

Parameters

Returns: QBLogicalCondition

Sample

var query = datasources.db.example_data.orders.createSelect();
query.where.add(query.columns.orderdate.isNull)

add(name, condition)

Add a named condition to the AND or OR condition list.

Parameters

Returns: QBLogicalCondition

Sample

var query = datasources.db.example_data.orders.createSelect();
query.where.add("mycond", query.columns.orderdate.isNull)

clear()

Clear the conditions in the query where-clause.

Returns: QBLogicalCondition

Sample

var query = datasources.db.example_data.orders.createSelect();
query.where.clear()

getCondition(name)

Get a named condition in the logical condition.

Parameters

  • String name The condition name.

Returns: QBLogicalCondition

Sample

var cond = query.getCondition('mycond')
for (var cname in cond.conditionnames)
{
	var subcond = cond.getCondition(cname)
}

remove(name)

Remove a named condition from the AND or OR condition list.

Parameters

  • String name The condition name.

Returns: QBLogicalCondition

Sample

var query = datasources.db.example_data.orders.createSelect();
query.where.remove("mycond")

Last updated