HPlogo Using KSAM XL: 900 Series HP 3000 Computer Systems > Chapter 5 Reading File Data

Sequential Access by Partial Key Value

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

The FFINDBYKEY intrinsic can be used to point to those records that contain a common portion of a key field. The intrinsic parameters (key value, key length, and relational operator) identify the partial value to be matched, the number of characters to be compared in the key field, and whether the record should equal the value or be greater than the value.

Only the common portion of the key is specified in the key value field. For example, to list all records with a zip code beginning with 943 but ending in any combination of numbers, 943 is entered in the key value field.

The key length parameter identifies the portion of the key field to be used in the comparison. For example, to list all records with a zip code beginning with 943, a key length of 3 would be specified. This means that only the first three characters of the five-character field are used in the comparison.

The relational operator limits the operation to only those records that meet the criteria. The relational operators that can be specified are 0 (equal to), 1 (greater than), and 2 (equal to or greater than). Figure 5-3 “Partial Key Search Sample” searches for the first occurrence of a record containing a partial key of "M0".

Figure 5-3 Partial Key Search Sample

  fby_keyvalue   := 'M0';

  fby_keylocation := 1;

  fby_keylength  := 2;

  fby_relop    := 0;

.

.

.

  FFINDBYKEY(filenum,fby_keyvalue,fby_keylocation,fby_keylength,fby_relop);

.

.

.

  lgth := FREAD(filenum,fr_record,fr_tcount);

To read all records containing "M0", a series of freads would be issued and a comparison made in the program to see when the key field did not contain "M0" or the end of the file reached.

Feedback to webmaster