Guardian Procedure Calls Reference Manual (G06.25+)
Guardian Procedure Calls (R)
Guardian Procedure Calls Reference Manual—522629-013
13-30
READUPDATE[X] Procedures
•
Value of the current key and current-key specifier
For key-sequenced, relative, and entry-sequenced files, random processing
implies that a designated record must exist. Therefore, positioning for
READUPDATE[X] is always to the record described by the exact value of the
current key and current-key specifier. If such a record does not exist, the call to
READUPDATE[X] is rejected with a file-system error 11 (“record does not exist”).
This is unlike sequential processing through READ[X] where positioning can be by
approximate, generic, or exact key value.
Disk File Considerations
•
Large data transfers
For READUPDATEX only, large data transfers (more than 4096 bytes), can be
enabled by using SETMODE function 141. Refer to Table 14-4
.
•
Record does not exist
If the position specified for the READUPDATE[X] operation does not exist, the call
is rejected with error 11. (The positioning is specified by the exact value of the
current key and current-key specifier.)
•
Structured files
•
READUPDATE[X] without selecting a specific record
If the call to READUPDATE[X] immediately follows a call to KEYPOSITION,
the call to KEYPOSITION must specify exact positioning mode in the
positioning-mode parameter and the length of the entire key in the
length-word parameter.
If the call to READUPDATE[X] immediately follows a call to KEYPOSITION
where a nonunique alternate key is specified, the READUPDATE[X] fails. A
subsequent call to FILE_GETINFO_ or FILEINFO shows that an error 46
(invalid key) occurred. However, if an intermediate call to READ or
READLOCK is made, the call to READUPDATE[X] is permitted because a
unique record is identified.
•
indicators after READUPDATE[X]
After a successful READUPDATE[X], the current-state indicators are
unchanged.
•
Unstructured disk files
•
unstructured files
For a READ[X] from an unstructured disk file, data transfer begins at the
position indicated by the current-record pointer. A call to READUPDATE[X]
typically follows a call to POSITION that sets the current-record pointer to the
desired relative byte address.