The following table summarizes the event flags to use for hooking the various ISAM-A operations.
Symbol |
ISAM-A File Operation |
HFE_xxx_WRITE |
UPDATE'RECORD |
HFE_xxx_WRITE |
UPDATE'RECORD |
HFE_xxx_WRITEL |
CREATE'RECORD |
HFE_xxx_ISAMA_DEL |
DELETE'RECORD |
HFE_xxx_READ |
GET, GET'NEXT, GET'PREV (optional 'READ'ONLY) |
HFE_xxx_READL |
GET'LOCKED, GET'NEXT'LOCKED, GET'PREV'LOCKED |
HFE_xxx_ALLOC |
ALLOCATE'INDEXED |
The DELETE'RECORD hook is enabled by one of the two event flags in HOOK.DEF in ASHINC:
define HFE_PRE_ISAMA_DEL= &h00200000 ! ISAM-A pre delete'record
define HFE_POST_ISAMA_DEL= &h00400000 ! ISAM-A post delete'record
GET'LOCKED and GET'NEXT'LOCKED are hooked like READL, while GET and GET'NEXT (without locking) are hooked like READ. Use the HFE_xxx_READL and/or HFE_xxx_READ flags to enable.
ALLOCATE'INDEXED is hooked like ALLOCATE (HFE_xxx_ALLOCATE flags).
A sample program, ISPTSTH.BP in EXLIB:[908,50] is available to demonstrate and test the ISAM-A hooks. Also see fnhooklog.bsi in SOSLIB[907,10] for the applicable hook event flags.
History
2019 March, A-Shell 6.5.1658: Function added to A-Shell