A descriptor contains two or more longwords that describe the VMS standard data type, size, and address of the data specified by the argument. VMS has different types of descriptors identified by a class type.
Each VMS standard data type has a VMS-defined symbolic code that VMS uses in descriptors.
Fixed-Length Descriptor (DSC$K_CLASS_S)
Dynamic String Descriptor (DSC$K_CLASS_D)
Fixed-Length Descriptor (CLASS_S)
Dynamic String Descriptor (CLASS_D)
The Fixed-Length Descriptor applies to scalar data (non-structured data type) and fixed-length strings. The Dynamic-String Descriptor applies to dynamically allocated strings.
GT.M database functions support the following types (data-types) of descriptors.
DATA TYPE |
SYMBOLIC CODE |
Byte integer (signed) |
DSC$K_DTYPE_B |
Byte integer (unsigned) |
DSC$K_DTYPE_BU |
Word integer (signed) |
DSC$K_DTYPE_W |
Word integer (unsigned) |
DSC$K_DTYPE_WU |
Longword integer (signed) |
DSC$K_DTYPE_L |
Longword integer (unsigned) |
DSC$K_DTYPE_LU |
Quadword integer (signed) |
DSC$K_DTYPE_Q |
Quadword integer (unsigned) |
DSC$K_DTYPE_QU |
D_floating |
DSC$K_DTYPE_D |
F_floating |
DSC$K_DTYPE_F |
G_floating |
DSC$K_DTYPE_G |
H_floating |
DSC$K_DTYPE_H |
Character string |
DSC$K_DTYPE_T |
GT.M database functions for descriptor arguments with read-only access method support all data types listed above for both classes of descriptors.
GT.M database functions for descriptor arguments with write-only access method support only DSC$K_DTYPE_T (character string) data type for the DSC$K_CLASS_D class, while they support all the data types mentioned in the above table for the DSC$K_CLASS_S class.
If GT.M finds an argument descriptor that does not adhere to the above supported combination of descriptor classes and descriptor data types, it triggers either a UNSDDTYPE or a UNSDCLASS error. |
The "class" column refers to the following:
Fixed-Length Descriptor (CLASS_S)
Dynamic String Descriptor (CLASS_D)