option #45

Invalid key checking

WSupported on Windows
USupported on Unix
VSupported on OpenVMS
NSupported in Synergy .NET

System option #45 affects the way the implicit key of reference is determined for indexed READs. When option #45 is set, if the key argument to the READ or FIND statement is contained within the specified record buffer, but it does not match or partially match a defined key, an "Illegal key was specified" error ($ERR_BADKEY) is generated instead of choosing the primary key.

Important

The implied key checking done for system option #45 assumes that when a key field contained within the record buffer passed on the READ or FIND statement is used, the key is either nonsegmented or does not exceed the length of the first segment. If system option #45 is set and you change a file to use segmented keys, implied key checking may no longer be possible. You must update your application to use a contiguous key buffer that is no longer contained within the record, and the KEYNUM qualifier must be specified. (See READ for more information about the key of reference.)

Option #45 is automatically set if option #35 is set.