Code: |
CBL NODYNAM IDENTIFICATION DIVISION. PROGRAM-ID. FSPS0001. AUTHOR. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. C01 IS NEW-PAGE. INPUT-OUTPUT SECTION. FILE-CONTROL. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 01 END-CODE PIC S9(9) BINARY VALUE ZERO. 01 CONSTANTS. 05 PGMNAME PIC X(11) VALUE 'FSPS0001 '. 05 TABLE-PREMSUM PIC X(30) VALUE 'HOURS.PREMSUM '. 05 TABLE-SYSDUMMY PIC X(30) VALUE 'SYSIBM.SYSDUMMY1 '. EXEC SQL INCLUDE PRMSUM END-EXEC. EXEC SQL INCLUDE SQLCA END-EXEC. COPY CCSQLMSG. LINKAGE SECTION. *----------------------------------------------------------- 01 V-SSN PIC S9(9) USAGE COMP VALUE ZEROES. 01 V-DATE PIC X(10) VALUE SPACES. 01 V-ANSWER PIC X(01) VALUE SPACES. *----------------------------------------------------------- PROCEDURE DIVISION USING V-SSN V-DATE V-ANSWER. *----------------------------------------------------------- MOVE V-SSN TO PREMSUM-SSNO. MOVE V-DATE TO PREMSUM-PSTPERIOD. EXEC SQL SELECT BAL_MED INTO :PREMSUM-BAL-MED FROM HOURS.PREMSUM WHERE SSNO = :PREMSUM-SSNO AND PSTPERIOD = :PREMSUM-PSTPERIOD END-EXEC. MOVE SQLCODE TO CCSQLMSG-SQLCODE. IF CCSQLMSG-SQLCODE-OK MOVE PREMSUM-BAL-MED TO V-ANSWER ELSE IF CCSQLMSG-SQLCODE-NOTFND MOVE 'N' TO V-ANSWER ELSE MOVE TABLE-PREMSUM TO CCSQLMSG-TABLE MOVE OPER-SELECT TO CCSQLMSG-OPERATION MOVE SQLCODE TO CCSQLMSG-SQLCODE-Z MOVE SQLSTATE TO CCSQLMSG-SQLSTATE DISPLAY PGMNAME CCSQLMSG-ERR-MSG END-IF. IF V-ANSWER > SPACES CONTINUE ELSE MOVE 'G' TO V-ANSWER. MOVE PREMSUM-SSNO TO V-SSN. MOVE PREMSUM-PSTPERIOD TO V-DATE. EXEC SQL COMMIT END-EXEC. STOP RUN. The calling Program: IDENTIFICATION DIVISION. PROGRAM-ID. TESTPROC. AUTHOR. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. C01 IS NEW-PAGE. INPUT-OUTPUT SECTION. FILE-CONTROL. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 01 CONSTANTS. 05 PGMNAME PIC X(11) VALUE 'FSPS0001 '. *01 WS-VARIBLES. 01 V-SSN PIC S9(9) USAGE COMP VALUE 107057549. 01 V-DATE PIC X(10) VALUE '2004-08-01'. 01 V-ANSWER PIC X(01) VALUE SPACES. EXEC SQL INCLUDE SQLCA END-EXEC. COPY CCSQLMSG. *---------------------------------------------------------------* PROCEDURE DIVISION. *---------------------------------------------------------------* EXEC SQL CALL HOURS.GETPREMSUM (:V-SSN, :V-DATE, :V-ANSWER) END-EXEC. MOVE SQLCODE TO CCSQLMSG-SQLCODE. IF CCSQLMSG-SQLCODE-OK CONTINUE ELSE IF CCSQLMSG-SQLCODE-NOTFND MOVE 'X' TO V-ANSWER ELSE MOVE TABLE-PREMSUM TO CCSQLMSG-TABLE MOVE OPER-SELECT TO CCSQLMSG-OPERATION MOVE SQLCODE TO CCSQLMSG-SQLCODE-Z MOVE SQLSTATE TO CCSQLMSG-SQLSTATE DISPLAY PGMNAME CCSQLMSG-ERR-MSG END-IF. DISPLAY 'V-SSN = ' V-SSN. DISPLAY 'V-DATE = ' V-DATE. DISPLAY 'V-ANSWER = ' V-ANSWER. EXEC SQL COMMIT END-EXEC. STOP RUN. |
Code: |
CREATE PROCEDURE HOURS.GETPREMSUM (INOUT SSN INTEGER, INOUT PERIOD DATE, INOUT ANSWER CHAR(01)) LANGUAGE COBOL EXTERNAL NAME FSPS0001 COLLID FBELCOLL SECURITY DB2 WLM ENVIRONMENT WLMTENV1; GRANT EXECUTE ON PROCEDURE HOURS.GETPREMSUM TO PUBLIC |
Code: |
IF CCSQLMSG-SQLCODE-OK MOVE PREMSUM-BAL-MED TO V-ANSWER ELSE IF CCSQLMSG-SQLCODE-NOTFND MOVE 'N' TO V-ANSWER ELSE |
Code: |
IF CCSQLMSG-SQLCODE-OK MOVE PREMSUM-BAL-MED TO V-ANSWER ELSE IF CCSQLMSG-SQLCODE-NOTFND MOVE 'N' TO V-ANSWER ELSE MOVE 'X' TO V-ANSWER |
Code: |
****************************************************************** * DCLGEN TABLE(HOURS.PREMSUM) * * LIBRARY(PF.DECLGEN(PRMSUM)) * * ACTION(REPLACE) * * LANGUAGE(COBOL) * * NAMES(PREMSUM-) * * STRUCTURE(HOURS-PREMSUM-TABLE) * * QUOTE * * COLSUFFIX(YES) * * ... IS THE DCLGEN COMMAND THAT MADE THE FOLLOWING STATEMENTS * ****************************************************************** EXEC SQL DECLARE HOURS.PREMSUM TABLE ( SSNO INTEGER NOT NULL, PSTPERIOD DATE NOT NULL, MEMSTAT CHAR(10) NOT NULL, WRKPERIOD DATE NOT NULL, ACCTNO SMALLINT NOT NULL, PREM_TYPE CHAR(10) NOT NULL, PREM_MEDC SMALLINT NOT NULL, PREM_PLAN CHAR(10), DENT_PLAN CHAR(10), PREMAMT DECIMAL(11, 2) NOT NULL, DENTAL_COV CHAR(1) NOT NULL, DENTAMT DECIMAL(11, 2) NOT NULL, PREMPAID DECIMAL(11, 2) NOT NULL, DENTPAID DECIMAL(11, 2) NOT NULL, PAY_TYPE CHAR(10) NOT NULL, BAL_MED CHAR(1) NOT NULL, BAL_DENT CHAR(1) NOT NULL, USERID CHAR(40) NOT NULL, LASTUPDT TIMESTAMP NOT NULL, EMPRNO INTEGER, EMPRSUB SMALLINT, PLANTYPE CHAR(1), MEMTYPE CHAR(1), MEMCLASS CHAR(8) ) END-EXEC. ************************************************************** * COBOL DECLARATION FOR TABLE HOURS.PREMSUM ************************************************************** 01 HOURS-PREMSUM-TABLE. * SSNO 10 PREMSUM-SSNO PIC S9(9) USAGE COMP. * PSTPERIOD 10 PREMSUM-PSTPERIOD PIC X(10). * MEMSTAT 10 PREMSUM-MEMSTAT PIC X(10). * WRKPERIOD 10 PREMSUM-WRKPERIOD PIC X(10). * ACCTNO 10 PREMSUM-ACCTNO PIC S9(4) USAGE COMP. * PREM_TYPE 10 PREMSUM-PREM-TYPE PIC X(10). * PREM_MEDC 10 PREMSUM-PREM-MEDC PIC S9(4) USAGE COMP. * PREM_PLAN 10 PREMSUM-PREM-PLAN PIC X(10). * DENT_PLAN 10 PREMSUM-DENT-PLAN PIC X(10). * PREMAMT 10 PREMSUM-PREMAMT PIC S9(9)V9(2) USAGE COMP-3. * DENTAL_COV 10 PREMSUM-DENTAL-COV PIC X(1). * DENTAMT 10 PREMSUM-DENTAMT PIC S9(9)V9(2) USAGE COMP-3. * PREMPAID 10 PREMSUM-PREMPAID PIC S9(9)V9(2) USAGE COMP-3. * DENTPAID 10 PREMSUM-DENTPAID PIC S9(9)V9(2) USAGE COMP-3. * PAY_TYPE 10 PREMSUM0PAY-TYPE PIC X(10). * BAL_MED 10 PREMSUM-BAL-MED PIC X(1). * BAL_DENT 10 PREMSUM-BAL-DENT PIC X(1). * USERID 10 PREMSUM-USERID PIC X(40). * LASTUPDT 10 PREMSUM-LASTUPDT PIC X(26). * EMPRNO 10 PREMSUM-EMPRNO PIC S9(9) USAGE COMP. * EMPRSUB 10 PREMSUM-EMPRSUB PIC S9(4) USAGE COMP. * PLANTYPE 10 PREMSUM-PLANTYPE PIC X(1). * MEMTYPE 10 PREMSUM-MEMTYPE PIC X(1). * MEMCLASS 10 PREMSUM-MEMCLASS PIC X(8). *********************************************************** * THE NUMBER OF COLUMNS DESCRIBED BY THIS DECLARATION IS 24 *********************************************************** |
Code: |
IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-CHAR PIC X(08). |
output generated using printer-friendly topic mod. All times are GMT - 5 Hours