Posted: Sat Sep 30, 2006 1:04 pm Post subject: PL/1 Sample programs
Hi,
Can anybody provide me sample PL/1 programs which have -
1. File Handling
2. Static calls to other programs
3. Embedded SQL statements
4. PL/1 - CICS programs
Thanks in advance. _________________ Regards,
Mangsk
I have a sample PGM for file handling.Hope it helps.
Code:
/*PROGRAM TO READ FROM A FILE AND GENERATE A REPORT */
/*********************************************************************/
/* PROGRAM NAME : TESTPGM */
/* DESCRIPTION : THIS PROGRAM READS RECORDS FROM A FILE ONE BY */
/* ONE AND GENERATES A REPORT WITH STANDARD HEADER */
/* AND FOOTER AND ALSO TAKES CARE OF INCREASING */
/* LINE NUMBERS IN THE REPORT */
/*********************************************************************/
TESTPGM:PROCEDURE OPTIONS(MAIN);
DCL DATETIMEVAR CHAR (17) INIT(' ');
DCL EOUT_LC FIXED DEC (3) INIT (0);
DCL INREC CHAR (80);
DCL MORE_RECORDS BIT (1);
DCL NO BIT (1) INITIAL('0'B);
DCL YES BIT (1) INITIAL('1'B);
DCL DATETIME BUILTIN,
SUBSTR BUILTIN;
DCL INP FILE RECORD INPUT,
OUT FILE RECORD OUTPUT;
ON ENDFILE(INP)
MORE_RECORDS = NO;
CLOSE FILE(INP);
ON ENDFILE(OUT)
CLOSE FILE(OUT);
MORE_RECORDS = YES;
OPEN FILE (INP);
OPEN FILE (OUT);
READ FILE (INP) INTO (INREC);
DATETIMEVAR = DATETIME;
PUT SKIP LIST('DATETIMEVAR',DATETIMEVAR);
SUBSTR(DATEDISP,7,4) = SUBSTR(DATETIMEVAR,1,4);
SUBSTR(DATEDISP,1,2) = SUBSTR(DATETIMEVAR,5,2);
SUBSTR(DATEDISP,4,2) = SUBSTR(DATETIMEVAR,7,2);
SUBSTR(TIMEDISP,1,2) = SUBSTR(DATETIMEVAR,9,2);
SUBSTR(TIMEDISP,4,2) = SUBSTR(DATETIMEVAR,11,2);
SUBSTR(TIMEDISP,7,2) = SUBSTR(DATETIMEVAR,13,2);
CALL HEADER_PROC;
DO WHILE(MORE_RECORDS);
WRITE FILE (OUT) FROM (INREC);
IF EOUT_LC >= 55
THEN DO;
EOUT_LC = 0;
PAGENUM = PAGENUM + 1;
PAGEDISP = PAGENUM;
CALL HEADER_PROC;
END;
EOUT_LC = EOUT_LC + 1;
READ FILE (INP) INTO (INREC);
END;
WRITE FILE (OUT) FROM (BLANKLN);
WRITE FILE (OUT) FROM (ENDRPRTLN);
CLOSE FILE(INP);
CLOSE FILE(OUT);
HEADER_PROC: PROC;
WRITE FILE (OUT) FROM (PAGELN);
WRITE FILE (OUT) FROM (DATELN);
WRITE FILE (OUT) FROM (TIMELN);
WRITE FILE (OUT) FROM (PGMSHOW);
WRITE FILE (OUT) FROM (BLANKLN);
WRITE FILE (OUT) FROM (HEADERLN);
WRITE FILE (OUT) FROM (BLANKLN);
EOUT_LC = EOUT_LC + 7;
END HEADER_PROC;
Try this untested PLI DB2 Program which inserts rows in a DB2 Table
Code:
/* ISRTPGM: THIS PROGRAM INSERTS ROWS INTO A DB2 TABLE */
ISRTPGM: PROCEDURE OPTIONS(MAIN);
DCL INP FILE RECORD INPUT;
DCL SYSPRINT FILE PRINT;
ON ENDFILE(INP)
MORE_RECORDS = NO;
CLOSE FILE(INP);
DCL MORE_RECORDS BIT (1);
DCL NO BIT (1) INITIAL('0'B);
DCL YES BIT (1) INITIAL('1'B);
DCL EOUT_LC FIXED DEC (3) INIT (0);
Posted: Tue Oct 10, 2006 4:35 pm Post subject: Compile PL/I pgm
Hi,
I am new to PL/I and need to write a new program on PL/I for doing a simple select from DB2 tables and preparing a report from that.
The above is going to create a great reference ground for me - thanks to Shekhar for this, but what I want to know is how this PL/I would be compiled - i.e if anyone could pass me on the compile jcl for creating the load of say, ISRTPGM (as created by Shekhar, above), it would be very helpful.
When I compile a PL/I would it create a Load and a DBRM as in a Cobol pgm, and do I need to bind them as well.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum