READING A KSAM FILE IN CHRONOLOGICAL ORDER [ KSAM/3000 Reference Manual ] MPE/iX 5.0 Documentation
KSAM/3000 Reference Manual
READING A KSAM FILE IN CHRONOLOGICAL
ORDER
The order in which records are physically written to a data file is
called chronological order. This order is not necessarily the same as a
sequence by key value although it may be. In particular, if the records
were written by a COBOL procedure to a file opened for sequential access,
then the chronological sequence and the primary key sequence are the
same. If, however, these orders differ, then the file system provides an
intrinsic that allows you to read a KSAM file in chronological order.
Figure 5-4 is a program that uses the intrinsic FREADC to read the
records in the order they were stored in the file.
Other file system intrinsics allow you to position the file to a
particular record number in chronological order (FPOINT), to retrieve the
current chronological record number (FGETINFO), and to read a record
located by its chronological record number (FREADDIR).
The COBOL procedures for KSAM interface do not provide the means to
access records by chronological record number.
_______________________________________________________________________________
| |
| C************************************************************* |
| C EXAMPL3 * |
| C READ KSAM FILE CHRONOLOGICALLY * |
| C ************************************************************ |
| SYSTEM INTRINSIC F0PEN,FCLOSE,FERRMSG,FCHECK |
| SYSTEM INTRINSIC FREADC |
| INTEGER FILNUM |
| CHARACTER FILENAME*10 |
| CHARACTER OUTPUT*72 |
| CHARACTER MESSAGE(72) |
| LOGICAL INPUT (36) |
| LOGICAL MESSAGEW(36) |
| EQUIVALENCE (MESSAGE,MESSAGEW) |
| EQUIVALENCE (OUTPUT,INPUT) |
| DATA FILENAME/"FEXAMFIL "/ |
| C**************************************************************|
| C OPEN KSAM FILE FOR INPUT *|
| C**************************************************************|
| FILENUM=FOPEN(FILNAME,%7L) |
| IF (FILNUM .EQ. 0) GO TO 200 |
| C**************************************************************|
| C READ DATA FROM FlLE IN *|
| C CHRONOLOGICAL ORDER *|
| C**************************************************************|
| DISPLAY "PRINT RECORDS IN CHRONOLOGICAL ORDER" |
| 20 ILEN=FREADC(FILNUM,INPUT,-72) |
| IF (.CC.) 300,30,50 |
| 30 DISPLAY OUTPUT |
| GO TO 20 |
| C**************************************************************|
| C CLOSE FILE *|
| C**************************************************************|
| 50 CALL FCLOSE(FILNUM,0,0) |
| IF (.CC.) 600,55,600 |
| 55 STOP "END OF JOB" |
_______________________________________________________________________________
Figure 5-4. Reading KSAM File in Chronological Sequence Using FORTRAN
_______________________________________________________________________________
| |
| C**************************************************************|
| C ERROR MESSAGES *|
| C**************************************************************|
| 200 CALL FCHECK(FILNUM,IERRNUM) |
| CALL FERRMSG(IERRNUM,MESSAGEW,LENGTH) |
| WRITE(6,250)(MESSAGE(I),I=1,LENGTH) |
| STOP "CANNOT OPEN KSAM FILE" |
| 300 CALL FCHECK(FILNUM,IERRNUM) |
| CALL FERRMSG(IERRNUM,MESSAGEW,LENGTH) |
| WRITE(6,250)(MESSAGE(I),I=1,LENGTH) |
| STOP "ERROR OCCURRED READING IN CHRONOLOGICAL ORDER" |
| 600 CALL FCHECK(FILNUM,IERRNUM) |
| CALL FERRMSG(IERRNUM,MESSAGEW,LENGTH) |
| WRITE(6,250)(MESSAGE(I),I=1,LENGTH) |
| STOP "CANNOT CLOSE FILE" |
| 250 FORMAT(IX,72A1) |
| END |
| |
| Output from Program Execution: |
| |
| PRINT RECORDS IN CHRONOLOGICAL ORDER |
| NOLAN JACK 923-4975 967 REED AVE, SUNNYVALE |
| HOSODA JOE 227-8214 1180 SAINT PETER CT. LOS ALTOS |
| ECKSTEIN LEO 287-5137 5303 STEVE'S CREEK SANATA CLARA|
| CARDIN RICK 578-7018 11100 WOLFE ROAD CUPERTINO |
| PASBY LINDA 295-1187 TOWN & CNTRY VILLAGE SAN JOSE |
| SEELY HENRY 293-4220 1144 LEBERTY ST. EL CERRITO |
| ROBERT GERRY 259-5535 12345 TELEGRAPH AVE. BERKELEY |
| TURNEWR IVAN 984-8498 22905 EMERSON ST. OAKLAND |
| WHITE GORDON 398-0301 4350 ASHBY AVE. BERKELEY |
| WEBSTER ELDER 287-4598 1256, KINGFIDHER ST. SUNNYVALE |
| STOP END OF JOB |
_______________________________________________________________________________
Figure 5-4. Reading KSAM File in Chronological Sequence Using FORTRAN (continued)
MPE/iX 5.0 Documentation