ISMDELETE deletes the specified record. The previous I/O operation must have been a successful READ if a serial delete is to be done. A serial DELETE removes the record previously read. A random DELETE removes the record specified by the primary key. ISMDELETE does not affect the current record pointer.
The ISMDELETE procedure requires the following parameters to return a DELETE result:
ISMDELETE (ISAMFILE, OPTION, RECORD)
-
ISAMFILE—The user's file.
-
OPTION—Specifies whether a serial or random delete is to be done.
Value
Meaning
0
Serial delete
1
Random delete
-
RECORD—The user's record area.
The DELETE result values are listed in the following table. The results with an asterisk (*) are returned by the GENERALSUPPORT procedure ISMDELETE. The other values are returned by KEYEDIO.
Field |
Value |
Result [26:10] |
Mnemonic |
Meaning |
---|---|---|---|---|
[0:1] |
0 |
No errors |
||
1 |
99 |
LASTIOMUSTBEREAD |
The last I/O was not a read. A random I/O was attempted when the ACCESSMODE was SEQUENTIAL. |
|
*[2:1] |
1 |
0 |
NOERROR |
OPTION was not a valid value. Bit 0 is also equal to 1. |
[6:01] |
1 |
Primary keys are not equal. |
||
[9:1] |
1 |
95 |
RECORDNOTFOUND |
The record was not found. No record met the key conditions. Bit 0 will also equal 1. |
98 |
KEYISINVALID |
The key is invalid. The KEYFLAGF was 0 indicating a relative key, but the file was not a relative file. Bit 0 will also equal 1. |