NLKEYCOMPARE [ MPE/iX Intrinsics Reference Manual ] MPE/iX 5.0 Documentation
MPE/iX Intrinsics Reference Manual
NLKEYCOMPARE
NM and CM callable.
Compares two strings of different length (for use with KSAM generic key
searching).
Syntax
___________________________________________________
| |
| CA I16V CA I16V |
| NLKEYCOMPARE(generickey,length1,key,length2,|
| I16 I16V U16A U16A |
| result,langnum,error,collseq);|
___________________________________________________
Parameters
generickey character array (required)
Passes the generic key to be compared to the keys
contained in the record read by FREAD.
length1 16-bit signed integer by value (required)
Contains the length, in bytes, of generickey, which
must be less than length2.
key character array (required)
Passes an entire key to which you want to compare
generickey.
length2 16-bit signed integer by value (required)
Contains the length in bytes of key, which must be
greater than length1.
result 16-bit signed integer by reference (required)
Returns the result of the compare:
Value Meaning
0 The retrieved key matches the generic key exactly for
a length of length.
1 The retrieved key does not match the generic key; it
is different only because of priority (for example,
uppercase versus lowercase characters or accent). The
FREAD key is still in range; records can follow
whichever key matches the generic key exactly.
2 The retrieved key is less than the generic key (its
collating order precedes the key specified). It does
not match generickey. This means the FREAD call found
a record that precedes the range requested. Records
that match generickey can follow.
3 The retrieved key is greater than the generic key (it
collates after the specified key). This means that
the FREAD call found a record whose key follows the
specified range. No records matching generickey
follow.
langnum 16-bit signed integer by value (required)
Contains the language ID number, specifying the
collating sequence to be used for the compare.
error 16-bit unsigned integer array (required)
Returns two elements: the first element is the
error number; the second element is reserved and
always returns 0. The possible error number values
are:
Value Meaning
0 Successful
1 *NLS not installed
2 *Specified language not configured
3 Invalid collating table entry
4 Invalid length parameter
5 *NLS internal error
6 *NLS internal error
7 Value of length1 not less than length2
* Do not apply to calls with a langnum equal to 0
(NATIVE3000/XL).
collseq 16-bit unsigned integer array (optional)
Passes the collating sequence table as returned by
NLINFO item 11. If this parameter is present,
langnum is ignored, and this routine is much more
efficient.
Operation Notes
Use NLKEYCOMPARE when reading a KSAM file in key sequential order in
combination with FREAD, and after a FFINDBYKEY call.
The NLKEYCOMPARE intrinsic lets a program determine whether a generic key
search found an exact match (that is, the generic key is exactly equal to
the beginning of the key), or whether the keys are different only because
of priority (for example, uppercase versus lowercase or accent). It also
lets the program determine whether an exactly matching key could be
farther along the key sequence.
Related Information
Intrinsics NLCOLLATE, NLREPCHAR, NLSCANMOVE, NLSWITCHBUF,
NLSTRANSLATE
Commands None
Manuals Native Language Programmer's Guide (32650-90022)
MPE/iX 5.0 Documentation