Global Functions
The DB Interface Module provides a predefined set of global functions, which allow an application to build portable SQL expressions.
Whenever possible, the DB Access Module for ODBC implements each global function through an escape sequence provided by the ODBC API. If the ODBC API does not supply an escape sequence analogous to the DB Interface Module global function, default syntax from the DB Interface Module is used. This default syntax may or may not be accepted by the underlying ODBC driver.
Table 4 lists the ODBC escape sequences or the DB Interface Module default syntax.
Table 4 – Restrictions on the use of global functions with RWDBExpr 
Function
Restrictions
rwdbAvg(const RWDBExpr&)
None. Corresponds to: AVG(expr)
rwdbCast(const RWDBExpr&,
const RWDBValue&)
None. Corresponds to:{fn CONVERT(expr, val)}
rwdbCast(const RWDBExpr&,
const RWDBValue&,
const RWDBExpr&)
Same as the two-expression form, as ODBC does not support this form.
rwdbCast(const RWBDExpr&,
const RWDBValue&,
const RWDBExpr&,
const RWDBExpr&)
Same as the two-expression form, as ODBC does not support this form.
rwdbCharLength(const RWDBExpr&)
None. Corresponds to: {fn LENGTH(expr)}
rwdbCount()
None. Corresponds to: COUNT(*)
rwdbCount(const RWDBExpr&)
None. Corresponds to: COUNT(expr)
rwdbCountDistinct(const RWDBExpr&)
None. Corresponds to: COUNT(DISTINCT expr)
rwdbCurrentUser()
None. Corresponds to: { fn USER()}
rwdbExists(const RWDBSelectorBase&)
None. Corresponds to: EXISTS(sel)
rwdbLower(const RWDBExpr&)
None. Corresponds to: {fn LCASE(expr)}
rwdbMax(const RWDBExpr&)
None. Corresponds to: MAX(expr)
rwdbMin(const RWDBExpr&)
None. Corresponds to: MIN(expr)
rwdbName(const RWCString&
const RWDBExpr&)
None. Corresponds to: expr AS str
rwdbPosition(const RWDBExpr&,
const RWDBExpr&)
None. Corresponds to:{fn LOCATE(expr0, expr1)}
rwdbSessionUser()
None. Corresponds to: {fn USER()}
rwdbSubString(const RWDBExpr&,
const RWDBExpr&)
None. Corresponds to:{fn SUBSTRING(expr0, expr1, {fn LENGTH(expr0)} )}
rwdbSubString(const RWDBExpr&,
const RWDBExpr&,
const RWDBExpr&)
None. Corresponds to:{fn SUBSTRING(expr0, expr1, expr2)}
rwdbSum(const RWDBExpr&)
None. Corresponds to: SUM(expr)
rwdbSystemDateTime()
None. Corresponds to: { fn NOW() }
rwdbSystemUser()
None. Corresponds to: {fn USER()}
rwdbTrimLeading(const RWDBExpr&,
const RWDBExpr&)
None. Default from the DB Interface Module:{ fn LTRIM(expr1)}
rwdbTrimTrailing(const RWDBExpr&,
const RWDBExpr&)
None. Default from the DB Interface Module:{fn RTRIM(expr1)
rwdbTrimBoth(const RWDBExpr&,
const RWDBExpr&)
None. Default from the DB Interface Module:
{fn LTRIM({fn RTRIM(expr1)})}
rwdbUpper(const RWDBExpr&)
None. Corresponds to: {fn UCASE(expr)}