QBLogicalCondition

Overview

The QBLogicalCondition class represents a logical clause used in building queries within the Servoy environment. It allows for the dynamic addition and removal of conditions, enabling complex query construction. The class provides functionality for managing conditions in logical groupings, either through `AND` or `OR` operations, and conditions can be added by name for easy reference. ## Features

Key features of the class include methods like js_add(), which adds conditions to the logical group in a JavaScript-compatible manner,and add(), which allows for adding conditions programmatically. The conditionnames() method returns the list of condition names, * while getCondition() retrieves a specific condition by its name. Conditions can also be cleared or removed with clear() and remove(), respectively. Additionally, the class includes a toString() method that provides a string representation of the logical condition.

Overall, the QBLogicalCondition class is used to manage query conditions in Servoy, offering flexibility in how logical conditions are structured and manipulated within queries.

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 logical condition.

Clear the conditions in the logical condition.

Get a named condition in the logical condition.

Remove a named condition from the logical condition.

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 logical condition.

Parameters

Returns: QBLogicalCondition

Sample

var query = datasources.db.example_data.orders.createSelect();
// create a logical condition
var condition = query.and
// add named conditions
condition.add("undated", query.columns.orderdate.isNull)
condition.add("expensive", query.columns.orderamount.gt(10000))

query.where.add("mycond", condition)

// part of the condition can be removed again
condition.remove("undated")

clear()

Clear the conditions in the logical condition.

Returns: QBLogicalCondition

Sample

var cond = query.getCondition('mycond')
cond.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 logical condition.

Parameters

  • String name The condition name.

Returns: QBLogicalCondition

Sample

var cond = query.getCondition('mycond')
cond.remove('mysubcond')

Last updated