Deleting Records From a Database (lkt_dbrecdelete)

The following command deletes one or more records from a database. Statistics are returned for the modified database.

 

dvkerr_t lkt_dbrecdelete(lpar_t host, lpar_t dbname, lpar_t reckeylist, 
lpar_t params, lpar_t *dbstats );
dvkerr_t lkt_dbrecdeleteT(lpar_t host, lpar_t dbname, lpar_t tran,
lpar_t reckeylist, lpar_t params,
lpar_t *dbstats );

Input

host (optional)

This is used to identify the server. For more information, see Communicating with TIBCO Patterns Servers.

dbname (required)

is the name of the database (LPAR_STR_DBDESCRIPTOR) from which records are deleted.

reckeylist (required)

A record key list has the following possible formats:

Standard: For a standard table or parent table a record list consists of a generic list (LPAR_LST_GENERIC) containing zero or more LPAR_STR_RECKEY lpars. The key values in the list must be unique and exist in the data base (see the DOMAXWORK flag).
Specific Child: To specify specific records in a child table a generic list (LPAR_LST_GENERIC) containing two sub-lists is passed. The first sub-list must be LPAR_LST_PARENT_KEYS. It must contain a list of LPAR_STR_RECKEY values, each containing the parent key value of a child record. The second sub-list must be LPAR_LST_CHILD_KEYS. It must contain a list of LPAR_STR_RECKEY values, each containing the key value of a child record. Both lists must be the same length, the keys must be in the same order (the nth item must contain the key for the nth record in both lists). The parent key list can contain a null entry, or an entry with a zero length key value, to specify a child record that does not have a parent key. For every parent key, pair of child record must exist in the data base with that parent key and record key (see the DOMAXWORK flag).
All Children: To specify all child records for a particular parent key a generic list (LPAR_LST_GENERIC) containing a single sub-list must be passed. The sub-list must be LPAR_LST_PARENT_KEYS. It must contain a list of LPAR_STR_RECKEY values. The values must be unique. There must be at least one child record in the database with the given parent key (see the DOMAXWORK flag). All child records with the given parent keys are processed (as modified by any orphan status flags).

params (optional)

is a list of updating parameters:

LPAR_BOOL_DOMAXWORK: If this parameter is false, any error (including the error DVK_ERR_RECNOTFOUND) causes the complete failure of the command (i.e., no records are deleted from database dbname).

If this parameter is true, maximum work is done even if some record keys in reckeylist are not found (error DVK_ERR_RECNOTFOUND) provided that this is the only error that occurs. In such a case the command returns DVK_OK and all of the records that were found are deleted.

Default value: false

LPAR_INT_LOCKKEY allows this update to go through on a database containing a keyed lock if the key value matches the lock value.

Default value: N/A

LPAR_BOOL_NO_ORPHANS if this flag is given and is set to true, orphan child records are not allowed. For the "All Children" record key list format orphan child records with the given parent key are quietly ignored. For the "Specific Child" record key list format orphan child records are considered to be a non-existing record, and triggers a record not found error unless the DOMAXWORK flag is set. It is an error if both this value is true and LPAR_BOOL_ORPHANS_ONLY is given and set true.
LPAR_BOOL_ORPHANS_ONLY if this flag is given and is set to true, only orphan child records are allowed. For the "All Children" record key list format non-orphan child records with the given parent key are quietly ignored. For the "Specific Child" record key list format non-orphan child records are considered to be a non-existing record, and triggers a record not found error unless the DOMAXWORK flag is set. It is an error if both this value is true, and LPAR_BOOL_NO_ORPHANS is given and set to true.

tran (optional)

identifies the user transaction (LPAR_LONG_TRAN_ID) under which the delete records operation is to be performed.

Output

dbstats (optional)

is a list of lpars that give statistics on the modified database similar to those returned by lkt_dbload.

If you do not care to have these statistics, just pass lkt_dbrecdelete a pointer value of NULL for dbstats.

 

Error codes and items returned by lkt_dbrecdelete

ARRAYLEN

(none) returned if too many child records for given parent keys

DBNOTFOUND

database name

DUPRECKEYS

list containing duplicate keys

EXPECTDBDESC

item that should have been a database name

EXPECTLIST

item that should have been a list lpar

EXPECTRECKEY

item that should have been a record key

INTERNAL

item being processed when error occurred

NODBDESC

(none)

NORECKEY

key with zero-length string, or (none)

NOSYSINIT

(none)

PARAMCONFLICT

conflicting parameter

PARAMTYPE

lpar that has invalid id

PARAMVAL

Invalid key list

RECNOTFOUND

list of record keys in same format as reckeylist

TBLNOTCHILD

name of table that should be a child table

TRAN_IN_USE

lpar that contains the transaction id

TRAN_UNKNOWN

 

TRANCONFLICT

list that contains LPAR_LONGINT_TRAN_ID and LPAR_STR_ERRORDETAILS

UPDPARAM

lpar that should have been an update parameter