Defines a query.
ade_id
ade_qrydefine(
char* joinop,
char* bggroups,
char* not_op,
char* condtype,
struct resbuf* qrycond,
char* endgroups);
Returns the ID of the query condition it creates or ADE_NULLID.
| joinop | A joining operator: "and" or "or" or "" (none). If "" (none) is specified, the default joining operator is used (see ade_prefgetval). |
| bggroups | For grouping this condition with others in the query definition you are building. Use one or more open parentheses as needed, or "" (none). For example, "((". |
| not_op | The NOT operator, if needed: "not" or "" (none). |
| condtype | A condition type: "Location", "Property", "Data", or "SQL". |
| qrycond | A condition expression. Depends on the condition type. See Condition Expressions below. |
| endgroups | For grouping this condition with others in the query definition you are building. Use one or more close parentheses as needed, or "" (none). For example, "))". |
A query definition is composed of one or more conditions, each defined by a separate ade_qrydefine call. You can group conditions by supplying parentheses or empty strings to the bggroups or endgroups parameters as needed.
You must specify all six ade_qrydefine arguments.
Condition Expressions
The qrycond parameter requires a condition expression. Condition expressions are lists. What you include in the list depends on the condition type: Location, Property, Data, or SQL.
Location Expressions
Property Expressions
Data Expressions
SQL Expressions
You must release the resbuf.
The following sample creates a resbuf containing the query condition values, (objects classified as Ponds). ade_qrydefine() is called with all required parameters, the returned queryId is checked for ADE_NULLID and an appropriate message is displayed. Then it releases the resbuf, as required.
char* pszJoinOperator = ""; // none
char* pszBgnCondGrouping = ""; // none
char* pszNotOperator = ""; // none
char* pszCondType = "Property";
char* pszEndCondGrouping = ""; // none
struct resbuf* pQueryConditionRb = acutBuildList(
RTLB,
RTSTR, "feature",
RTSTR, "=",
RTSTR, "Pond",
RTLE,
0 );
ade_id queryId = ade_qrydefine(
pszJoinOperator,
pszBgnCondGrouping,
pszNotOperator,
pszCondType,
pQueryConditionRb,
pszEndCondGrouping);
if (queryId != ADE_NULLID) {
acutPrintf(
"\nA %s query has been defined."
, pszCondType);
}
else {
acutPrintf(
"\nA %s query was not defined."
, pszCondType);
}
acutRelRb(pQueryConditionRb);


