1 / 16

Relative Files.

Relative Files. Creating a Relative File. $ SET SOURCEFORMAT"FREE" IDENTIFICATION DIVISION. PROGRAM-ID. CreateRelativeFromSeq. * Creates a Relative file from a sequential file. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT SupplierFile ASSIGN TO "SUPP.DAT"

holly
Télécharger la présentation

Relative Files.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Relative Files.

  2. Creating a Relative File $ SET SOURCEFORMAT"FREE" IDENTIFICATION DIVISION. PROGRAM-ID. CreateRelativeFromSeq. * Creates a Relative file from a sequential file. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT SupplierFile ASSIGN TO "SUPP.DAT" ORGANIZATION IS RELATIVE ACCESS MODE IS RANDOM RELATIVE KEY IS SupplierKey FILE STATUS IS SupplierStatus. SELECT SupplierFileSeq ASSIGN TO "INSUPP.DAT". DATA DIVISION. FILE SECTION. FD SupplierFile. 01 SupplierRecord. 02 SupplierCode PIC 99. 02 SupplierName PIC X(20). 02 SupplierAddress PIC X(60). FD SupplierFileSeq. 01 SupplierRecordSeq. 88 EndOfFile VALUE HIGH-VALUES. 02 SupplierCodeSeq PIC 99. 02 SupplierNameSeq PIC X(20). 02 SupplierAddressSeq PIC X(60). WORKING-STORAGE SECTION. 01 SupplierStatus PIC X(2). 01 SupplierKey PIC 99.

  3. Creating a Relative File $ SET SOURCEFORMAT"FREE" IDENTIFICATION DIVISION. PROGRAM-ID. CreateRelativeFromSeq. * Creates a Relative file from a sequential file. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT SupplierFile ASSIGN TO "SUPP.DAT" ORGANIZATION IS RELATIVE ACCESS MODE IS RANDOM RELATIVE KEY IS SupplierKey FILE STATUS IS SupplierStatus. SELECT SupplierFileSeq ASSIGN TO "INSUPP.DAT". DATA DIVISION. FILE SECTION. FD SupplierFile. 01 SupplierRecord. 02 SupplierCode PIC 99. 02 SupplierName PIC X(20). 02 SupplierAddress PIC X(60). FD SupplierFileSeq. 01 SupplierRecordSeq. 88 EndOfFile VALUE HIGH-VALUES. 02 SupplierCodeSeq PIC 99. 02 SupplierNameSeq PIC X(20). 02 SupplierAddressSeq PIC X(60). WORKING-STORAGE SECTION. 01 SupplierStatus PIC X(2). 01SupplierKeyPIC 99.

  4. Creating a Relative File PROCEDURE DIVISION. Begin. OPEN OUTPUT SupplierFile. OPEN INPUT SupplierFileSeq. READ SupplierFileSeq AT END SET EndOfFile TO TRUE END-READ PERFORM UNTIL EndOfFile MOVE SupplierCodeSeq TO SupplierKey MOVE SupplierRecordSeq TO SupplierRecord WRITE SupplierRecord INVALID KEY DISPLAY "SUPP STATUS :-", SupplierStatus END-WRITE READ SupplierFileSeq AT END SET EndOfFile TO TRUE END-READ END-PERFORM. CLOSE SupplierFile, SupplierFileSeq. STOP RUN.

  5. Reading a Relative File. $ SET SOURCEFORMAT"FREE" IDENTIFICATION DIVISION. PROGRAM-ID. ReadRelative. * Reads a Relative file directly or in sequence ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT SupplierFile ASSIGN TO "SUPP.DAT" ORGANIZATION IS RELATIVE ACCESS MODE IS DYNAMIC RELATIVE KEY IS SupplierKey FILE STATUS IS SupplierStatus. DATA DIVISION. FILE SECTION. FD SupplierFile. 01 SupplierRecord. 88 EndOfFile VALUE HIGH-VALUES. 02 SupplierCode PIC 99. 02 SupplierName PIC X(20). 02 SupplierAddress PIC X(60). WORKING-STORAGE SECTION. 01 SupplierStatus PIC X(2). 88 RecordFound VALUE "00". 01 SupplierKey PIC 99. 01 PrnSupplierRecord. 02 PrnSupplierCode PIC BB99. 02 PrnSupplierName PIC BBX(20). 02 PrnSupplierAddress PIC BBX(50). 01 ReadType PIC 9. 88 DirectRead VALUE 1. 88 SequentialRead VALUE 2.

  6. Reading a Relative File. PROCEDURE DIVISION. BEGIN. OPEN INPUT SupplierFile. DISPLAY "Enter Read type (Direct=1, Seq=2)-> " WITH NO ADVANCING. ACCEPT ReadType. IF DirectRead DISPLAY "Enter supplier key (2 digits)-> " WITH NO ADVANCING ACCEPT SupplierKey READ SupplierFile INVALID KEY DISPLAY "SUPP STATUS :-", SupplierStatus END-READ PERFORM DisplayRecord END-IF IF SequentialRead READ SupplierFile NEXT RECORD AT END SET EndOfFile TO TRUE END-READ PERFORM UNTIL EndOfFile PERFORM DisplayRecord READ SupplierFile NEXT RECORD AT END SET EndOfFile TO TRUE END-READ END-PERFORM END-IF CLOSE SupplierFile. STOP RUN. DisplayRecord. IF RecordFound MOVE SupplierCode TO PrnSupplierCode MOVE SupplierName TO PrnSupplierName MOVE SupplierAddress TO PrnSupplierAddress DISPLAY PrnSupplierRecord END-IF.

  7. Reading a Relative File. RUN OF REL-EG2.EXE USING SEQUENTIAL READING Enter Read type (Direct=1, Seq=2)-> 2 01 VESTRON VIDEOS OVER THE SEA SOMEWHERE IN LONDON 02 EMI STUDIOS HOLLYWOOD, CALIFORNIA, USA 03 BBC WILDLIFE BUSH HOUSE, LONDON, ENGLAND 04 CBS STUDIOS HOLLYWOOD, CALIFORNIA, USA 05 YACHTING MONTHLY TREE HOUSE, LONDON, ENGLAND 06 VIRGIN VIDEOS IS THIS ONE ALSO LOCATED IN ENGLAND 07 CIC VIDEOS NEW YORK PLAZZA, NEW YORK, USA RUN OF REL-EG2.EXE USING DIRECT READ Enter Read type (Direct=1, Seq=2)-> 1 Enter supplier key (2 digits)-> 05 05 YACHTING MONTHLY TREE HOUSE, LONDON, ENGLAND

  8. Select and Assign for Relative Files

  9. FDs for Relative Files

  10. Relative File Verbs - OPEN

  11. Relative File Verbs - READ

  12. Relative File Verbs - Write and Rewrite

  13. Relative File Verbs - DELETE

  14. Relative File Verbs - START

  15. Error Handling Using Declaratives. PROCEDURE DIVISION. DECLARATIVES. SectionOne SECTION. USE clause for this section. ParOne1. ???????????????? ???????????????? ParOne2. ???????????????? ???????????????? SectionTwo SECTION. USE clause for this section. ParTwo1. ???????????????? ???????????????? ParTwo2. ???????????????? ???????????????? END-DECLARATIVES. Main SECTION. Begin.

  16. Error Handling Using Declaratives. PROCEDURE DIVISION. DECLARATIVES. FileError SECTION. USE AFTER ERROR PROCEDURE ON RelativeFile. CheckFileStatus. EVALUATE TRUE WHEN RecordDoesNotExist DISPLAY "Record does not exist" WHEN RecordAlreadyExists DISPLAY "Record already exists" WHEN FileNotOpen OPEN I-O RelativeFile END-EVALUATE. END-DECLARATIVES. Main SECTION. Begin.

More Related