E@DBDELSUBRNG

Name

The E@DBDELSUBRNG call has the following format:

DN@<Logical>(E@DBDELSUBRNG)

where <Logical> identifies the database file to use to perform the E@DBDELSUBRNG call.

Description

E@DBDELSUBRNG deletes all records in a subrange.

You specify the range similarly to the E@DBDELETERNG call, but with the addition of a field named D#END#-<IndexFieldName>, which is used to specify the end value of the last field in the subrange.

Using the API in a Program

You must populate the delimiting D@ fields and E@DBSUBRNG before using E@DBDELSUBRNG.

When this routine deletes a subrange of database records, it also deletes all index entries associated with that subrange of records.

Note: In recoverable database environments, E@DBDELSUBRNG cannot span more than one transaction state. Deleting a very large subrange of records in a single block creates a very large journal, or transaction, that may exceed a limit. If a subrange does not realistically fit in a single transaction, you must use a modify/delete loop, with specific attention paid to controlling the size of the logical transactions.

Input Values

Field Description
<Logical> You must specify the database index name that you want to create a record in.
Record retrieval variables (also known as D@ fields)

You must populate the index key fields used to locate the record before using this call.

Fill in only the D@ fields that define the appropriate range; leave empty those D@ fields that do not define the range.

D#START#<KeyFieldName>

D#END#<KeyFieldName>

Define the beginning and ending values of the last key by moving the appropriate values to the record retrieval fields named D#START#<KeyFieldName> (starting value) and D#END#<KeyFieldName> (ending value). This defines the range itself.
E@DBSUBRNG Move a number into E@DBSUBRNG in order to tell the interface which key is the last significant one defining the range. This number is equivalent to the position of the field in the index.