Don't Lose Your Record Pointer

RPG
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

If you're adding records to an indexed file, it's a common practice to check

for the existence of a key before you attempt to add a new record. If you're

also processing the same file sequentially by key, the routine that checks for

the existence of a key can cause your program to loose the record pointer used

to process the file sequentially.

I've created a solution for this type of situation. It works by defining the

file twice in the program. For instance, if the file that you want to process

is called FILE1 and the HLL is RPG, do the following.

On a command line or using a CL program, override a file name such as FILE2 to

FILE1. In the RPG program, specify FILE1 as you normally would and add a second

F-spec with file name FILE2. If FILE1 is externally described, add an F-spec

continuation specification to rename the record format of FILE2 to something

like NEWFMT. As you read FILE1, check for the existence of the new record in

FILE2. If it doesn't exist, delete the record from FILE1 and write a record to

FILE2 (record format NEWFMT). Both input and output will be happening to the

same file. Since you're using two different access paths to the same data, you

don't have to worry about the file pointer being affected. (You must override

FILE2 to FILE1 before you can compile the program.)

--Mike Midkiff

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$0.00 Raised:
$