When using the 4D API calls to build a query a common mistake is to leave out the eQO_NoOperator operator on the first line of a query.
The basic syntax of a query series is to open the query (PA_OpenQuery), call a series of query commands (PA_QueryXXX) and then execute the query with a close query command (PA_CloseQuery). When calling the query commands such as PA_QueryLongint, the first time a query call is made the eQO_NoOperator must be called. This is to let the API know that this is in fact the first query call. All subsequent Query calls will use operators such as eQO_LogicalAND, eQO_LogcialOR, or eQO_Except .
For example, suppose that we want to query on a table and find all the values that range from 1,000 to 10,000. Our example syntax would be similar to the following:
PA_QueryLongint(TableNum, FieldNum, eQO_NoOperator, eQC_IsGreaterOrEqual, 1000);
PA_QueryLongint(TableNum, FieldNum, eQO_LogicalAND, eQC_IsLessOrEqual, 10000);
Notice that the first time we call PA_QueryLongint we must call the eQO_NoOperator operator.