Define and use queries
- Last Updated: April 1, 2024
- 2 minute read
- OpenEdge
- Version 12.8
- Documentation
There is a DEFINE statement for a query
as for other ABL objects. This is the general syntax:
Syntax
|
The statement gives the query a name and, in turn, names the buffer or buffers that the query uses. In the simplest case, the buffers are database table names. But you can also use other buffers you defined as alternatives to table names or, as you learn later, buffers for temp-tables.
If you want to reposition within the result set without using the GET FIRST, NEXT, PREV, and LAST statements, you
need to define the query as SCROLLING. You learn later in
this section how to reposition within the result set of a scrolling query. You must also
define a query that is going to be associated with a browse as SCROLLING. There is a slight performance cost to using the SCROLLING option, so you should leave it off if you are not using
the capabilities it enables.
You do not actually specify the exact data selection statement for the
buffers and the tables they represent until you open the query. At that time, you can
describe the joins between tables and any other parts of a WHERE clause that filter the data from the tables. As with other DEFINE statements, nothing actually happens when the ABL Virtual
Machine (AVM) encounters the DEFINE QUERY statement. No
data is retrieved. the AVM simply registers the query name and sets up storage and a handle
for the query itself as an object.