Work with handles
- Last Updated: January 22, 2026
- 2 minute read
- OpenEdge
- Version 12.8
- Documentation
The HANDLE data type stores a pointer to a structure that represents a running built-in ABL procedure or an object in a procedure such as a socket, temp-table, or button. Handles allow you to access attributes and methods that ABL defines for each object, which you can use to interact with an object's state and behavior.
Handle-based objects are conceptually analogous to, but different from, class-based objects. Unlike class-based objects, the types and capabilities of all handle-based objects are built in to the AVM. You cannot define your own handle-based objects. Handle-based objects are also not garbage collected. You must manage the memory by cleaning up handle-based objects, using the DELETE OBJECT statement, when they are no longer needed.
DEFINE and CREATE statements. You reference a static instance by the
defined object name or its handle. You reference a dynamic instance only by its handle.
The following example code show you how to define and access both a static and dynamic
instance of an object.
|
|
Some commonly used object type handles in ABL are:
- Temp-table object handle
- Buffer object handle
- Buffer-field object handle
- Query object handle
- ProDataSet object handle
- Data-relation object handle
- Data-source object handle
For the complete list of system and object handles, see the Handle Reference. Attributes and methods for object type handles are described in the Handle Attributes and Methods Reference.