The LBR$DELETE_KEY routine removes a key from the current library index. Format LBR$DELETE_KEY library_index, key_name[, txtrfa] [, flags]
1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value Longword condition value. Most utility routines return a condition value. Condition values that this routine can return are listed under Condition Values Returned.
2 – Arguments
library_index OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference Library control index returned by the LBR$INI_CONTROL routine. The library_index argument is the address of a longword that contains the index. key_name OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference The key to be deleted from the library index. For libraries with binary keys, the key_name argument is the address of an unsigned longword containing the key number. For libraries with ASCII keys, the key_name argument is the address of the string descriptor pointing to the key with the following argument characteristics: Argument Characteristics Entry OpenVMS usage char_string type character string access read only mechanism by descriptor txtrfa OpenVMS usage:vector_longword_unsigned type: longword (unsigned) access: read only mechanism: by reference The txtrfa argument is the address of the 2-longword array that contains the record file address (RFA). If present and if the flags argument is not present, the routine scans for all types of the key for the specified txtrfa and delete those entries. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value If present, this argument indicates that a particular type of the key or all types of the key is to be deleted. The flags bits are as follows: Flag Bits Description LBR$M_SYM_WEAK = UNIX-style weak symbol attribute 0x1 LBR$M_SYM_GROUP = Group symbol attribute 0x2 LBR$M_SYM_ALL = All symbols 0x80000000 If the txtrfa argument is not present or if its value is zero, the type indicated by flags is deleted. If txtrfa specifies a nonzero value, the entry of the type indicated, with the txtrfa supplied, is removed. Note that only one type or all types can be specified.
3 – Description
If LBR$DELETE_KEY finds the key specified by key_name in the current index, it deletes the key. Note that if you want to delete a library module, you must first use LBR$DELETE_KEY to delete all the keys that point to it, then use LBR$DELETE_DATA to delete the module's header and associated data. You cannot call LBR$DELETE_KEY from within the user-supplied routine specified in LBR$SEARCH or LBR$GET_INDEX.
4 – Condition Values Returned
LBR$_ILLCTL Specified library control index not valid. LBR$_KEYNOTFND Specified key not found. LBR$_LIBNOTOPN Specified library not open. LBR$_UPDIRTRAV Specified index update not valid in a user- supplied routine specified in LBR$SEARCH or LBR$GET_INDEX.