Code: |
//INPUT DD DSN=YOUR PDS(MEM1), // DISP=SHR // DD DSN=YOUR PDS(MEM2), // DISP=SHR ..... // DD DSN=YOUR PDS(MEM'N'), // DISP=SHR |
Code: |
FILE-CONTROL. (Do not code this DD name in the JCL ) SELECT INPUT-FILE ASSIGN UT-S-DYNFILE FILE STATUS IS INPUT-FILE-STATUS. 01 RC PIC 9(9) BINARY. 01 ADDRESS-POINTER POINTER. 01 FILE-ENVIRONMENT-VARIABLE PIC X(xx) VALUE 'DYNFILE=DSN(xxx.xxx(xxx) SHR'. 01 FILE-ENVIRONMENT-OUT PIC X(150) VALUE SPACES. SET ADDRESS-POINTER TO ADDRESS OF FILE-ENVIRONMENT-VARIABLE. CALL "PUTENV" USING BY VALUE ADDRESS-POINTER RETURNING RC. IF RC NOT = ZERO THEN DISPLAY 'PUTENV FAILED' STOP RUN END-IF. OPEN INPUT INPUT-FILE. READ INPUT-FILE (maybe in a loop) CLOSE INPUT-FILE. STOP RUN. |
Code: |
IDENTIFICATION DIVISION. PROGRAM-ID. DYN DATE-COMPILED. ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT IN-PDS ASSIGN TO INFILE ORGANIZATION IS SEQUENTIAL. DATA DIVISION. FILE SECTION. FD IN-PDS RECORDING MODE IS F LABEL RECORDS ARE STANDARD BLOCK CONTAINS 0 RECORDS DATA RECORD IS IN-REC. 01 IN-REC PIC X(80). WORKING-STORAGE SECTION. 01 BPXWDYN PIC X(08) VALUE 'BPXWDYN'. 01 S-EOF-FILE PIC X(01) VALUE 'N'. 01 PDS-STRING. 05 PDS-LENGTH PIC S9(4) COMP VALUE 100. 05 PDS-TEXT PIC X(100) VALUE 'ALLOC DD(INFILE) DSN(''YOUR.PDS.FILE(MEMBER)'') SHR'. PROCEDURE DIVISION. CALL BPXWDYN USING PDS-STRING IF RETURN-CODE = ZERO DISPLAY 'ALLOCATION OK' ELSE DISPLAY 'ALLOC FAILED, RETURN-CODE WAS ' RETURN-CODE PERFORM INHOUSE-ABEND-ROUTINE END-IF OPEN INPUT IN-PDS PERFORM 1000-READ-INFILE UNTIL S-EOF-FILE = 'Y' CLOSE IN-PDS GOBACK. 1000-READ-INFILE. READ IN-PDS AT END MOVE 'Y' TO S-EOF-FILE NOT AT END DISPLAY IN-REC END-READ . |
Code: |
1. The call using PUTENV is static. You MUST compile the program with NODYNAM compiler option. If you don't then you will have abends like S0C1 2. The minimum level of COBOL required for the PUTENV to work is COBOL 2.2 and you would also need some Language environment PTF's. The older versions of COBOL do not have the ability to set a pointer to the Address Of a Working-Storage item. 3.The PUTENV by itself is only a stub to the routine in SCEERUN, not a complete module. 4. BPXWDYN on the other hand is a well written program which does not have any of the above listed problems. |
Quote: |
WORKING-STORAGE SECTION. 01 BPXWDYN PIC X(08) VALUE 'BPXWDYN'. 01 S-EOF-FILE PIC X(01) VALUE 'N'. 01 PDS-STRING. 05 PDS-LENGTH PIC S9(4) COMP VALUE 100. 05 PDS-TEXT PIC X(100) VALUE 'ALLOC DD(INFILE) DSN(''YOUR.PDS.FILE(MEMBER)'') SHR'. PROCEDURE DIVISION. CALL BPXWDYN USING PDS-STRING IF RETURN-CODE = ZERO DISPLAY 'ALLOCATION OK' ELSE DISPLAY 'ALLOC FAILED, RETURN-CODE WAS ' RETURN-CODE PERFORM INHOUSE-ABEND-ROUTINE END-IF OPEN INPUT IN-PDS PERFORM 1000-READ-INFILE UNTIL S-EOF-FILE = 'Y' CLOSE IN-PDS GOBACK. |
Quote: |
I am able to creat a file dynamically,but when i try to open it...gives a file status code of 96. Plz advice. |
Code: |
For QSAM file: An OPEN statement with the OUTPUT phrase was attempted, or an OPEN statement with the I-O or EXTEND phrase was attempted for an optional file but no DD statement was specified for the file and the CBLQDA(OFF) runtime option was specified. |
output generated using printer-friendly topic mod. All times are GMT - 5 Hours