ChapterA 12.A Database Access Library

Table of Contents

Invoking DAL Functions from External Routines
Initializing the GT.M Run-time Environment
Call Arguments
Data Types and Descriptors
Routines Example

GT.M allows programs written in other VMS programming languages to refer to GT.M M databases in ways analogous to the references made by M commands and functions. External routines, except for GTM$INIT, refer to GT.M databases using symbols in the GT.M run-time library prefaced by GTM (for example, GTM$DATA). The section within the GT.M run-time library containing these GT.M symbols is called the Database Access Library (DAL). Each GT.M symbol points to a specific database function, also called a DAL function.

GT.M allows programs written in other programming languages to refer to GT.M databases in ways similar to the references made by M commands and functions. References are made by using symbols in a GT.M run-time library prefaced by gtm (e.g., gtm_data). The GT.M run-time library containing these GT.M symbols is called the Database Access Library (DAL) and is named libgtmrpc.a. Each GT.M symbol represents a specific database function, also called a DAL function.

The GT.M run-time library routines conform to the VMS Calling and Condition Handling standard and therefore can be referenced by any VMS programming language that supports that standard.

GT.M database functions available to external routines are:

gtm_init: Initializes the GT.M run-time environment.

GTM$DATA: Performs an M $DATA function

gtm_data: Performs an M $DATA function.

GTM$DECLOCK: Decrements LOCKs on M names

gtm_declock: Decrements LOCKs on M names.

GTM$GET: Retrieves an M node

gtm_get: Retrieves an M node.

GTM$INCLOCK: Increments LOCKs on M names

GTM$INIT: Initializes the GT.M run-time environment

gtm_inclock: Increments LOCKs on M names.

GTM$INTERRUPT: Permits another language sharing a process with GT.M to trigger GT.M out-of-band processing when GT.M regains control of the process.

gtm_interrupt: Permits another language sharing a process with GT.M to trigger GT.M out-of-band processing when GT.M regains control of the process.

GTM$KILL: Kills a node and all of its descendants

gtm_kill: Kills a node and all of its descendants.

GTM$LOCK: LOCKs or unLOCKs M names

gtm_lock: LOCKs or unLOCKs M names.

GTM$ORDER: Performs a M $ORDER function

gtm_order: Performs an M $ORDER function.

GTM$PREVIOUS: Performs an M $ZPREVIOUS function

gtm_previous: Performs an M $ZPREVIOUS function.

GTM$PUT: Stores a node in an M variable

gtm_put: Stores a node in an M variable.

GTM$QUERY: Performs a $QUERY function on an M global

GTM$RUNDOWN: Runs down and closes all GT.M M databases opened by the current user

gtm_rundown: Performs an M $NEXT function

gtm_query: Performs a $QUERY function on an M global.

GTM$SETGBLDIR: Sets new value for $ZGBLDIR

gtm_setgbldir: Sets a new value for $ZGBLDIR.

GTM$WITHDRAW: Performs a ZWITHDRAW command on a global variable

gtm_withdraw: Performs a ZWITHDRAW command on a global variable.

gtm_halt: Runs down and closes all GT.M M databases opened by the current user.

GTM$XECUTE: Performs an XECUTE command

gtm_xecute: Performs an XECUTE command.

GTM$ZALLOC: ZALLOCATEs M names

gtm_zalloc: ZALLOCATEs M names.

GTM$ZDEALLOC: ZDEALLOCATEs M names

gtm_zdealloc: ZDEALLOCATEs M names.

GTM$ZTCOMMIT: Closes one or more journaling fences

gtm_ztcommit: Closes one or more journaling fences.

GTM$ZTSTART: Opens a journaling fence

gtm_ztstart: Opens a journaling fence.

GTM$ZSTATUS: Returns current value of $ZSTATUS.

For information about the individual command or function underlying a particular DAL database function, refer to the "Commands" and "Functions" chapters.