Guardian Procedure Calls Reference Manual (G06.25+)

Guardian Procedure Calls (R)
Guardian Procedure Calls Reference Manual522629-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.