Try OpenEdge Now
skip to main content
Debugging and Troubleshooting
Troubleshooting Resources : Log Entry Types Detail : Query information logging : Generating query information : Distinguishing between query objects
 
Distinguishing between query objects
You typically generate ABL query objects as follows:
*You define static queries. For example:
DEFINE QUERY q1 FOR customer.
*You create dynamic queries. For example:
DEFINE VARIABLE my-query-handle AS HANDLE NO-UNDO.
CREATE QUERY my-query-handle.
It also is possible for you to dynamically open a static query; that is, you can define the query statically, but then get a handle to the query, and prepare and open the query as you would a dynamic query. Since query information logging reacts to how a query is prepared and opened, not to how it is defined or created, it is necessary to distinguish between static and dynamic queries, and queries that are statically or dynamically opened.
For example, query information logging logs query preparation statistics for dynamically opened queries, as it happens at run time and can affect the performance of an application. For statically opened queries, the preparation happens at compile time, so there is no impact at run time.
There are some places in query information logging that do relate specifically to dynamic and static queries. For example, dynamic queries typically do not have a name, while static queries always have a name. This means that a dynamically opened query might or might not have a name. Thus, query information logging will log the name only when it is available.
Both database and temp-table queries are logged.