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). |
Code: |
CREATE PROCEDURE HOURS.GETPREMSUM (INOUT SSN INTEGER, INOUT PERIOD DATE, INOUT ANSWER CHAR(01), INOUT SQLCD INTEGER) LANGUAGE COBOL PARAMETER STYLE GENERAL EXTERNAL NAME FSPS0001 COLLID FBELCOLL SECURITY DB2 WLM ENVIRONMENT WLMTENV1; GRANT EXECUTE ON PROCEDURE HOURS.GETPREMSUM TO PUBLIC ; |
Code: |
CBL NODYNAM IDENTIFICATION DIVISION. PROGRAM-ID. FSPS0001. AUTHOR. RON LEWIS. *REMARKS. CREATE Stored Procedure *mm/dd/yy x. xxxxxxxxxx - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx * xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx **************************************************************** * * FILES: * +===========================================================+ * | DLBL NAME | I-O | DESCRIPTION |SEQ|RND|DYN| * +===========+=====+=============================+===+===+===+ * +-----------------------------------------------------------+ * DATABASE TABLES: * +===========================================================+ * | PROCEDURE | I-O | DESCRIPTION | * +====================+=====+================================+ * | GETPREMSUM | IN | HOURS PREMSUM | * +-----------------------------------------------------------+ * | SYSIBM.SYSDUMM1 | IN | IBM DUMMY TABLE | * +--------------------+-----+--------------------------------+ **************************************************************** ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. C01 IS NEW-PAGE. INPUT-OUTPUT SECTION. FILE-CONTROL. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 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. 01 V-SQLCD PIC S9(9) USAGE COMP VALUE ZEROES. *--------------------------------------------------------------- PROCEDURE DIVISION USING V-SSN V-DATE V-ANSWER V-SQLCD. *--------------------------------------------------------------- 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 V-SQLCD. 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 123456* MOVE TABLE-PREMSUM TO CCSQLMSG-TABLE 123456* MOVE OPER-SELECT TO CCSQLMSG-OPERATION 123456* MOVE SQLCODE TO CCSQLMSG-SQLCODE-Z 123456* MOVE SQLSTATE TO CCSQLMSG-SQLSTATE 123456* 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. |
Code: |
Calling PGM: ************************* Top of Data **************************** 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 WORK-AREA. 05 SUB PIC 99 VALUE ZEROES. 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 '. 05 OPER-SELECT PIC X(09) VALUE 'SELECT '. *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. 01 V-SQLCD PIC S9(9) USAGE COMP VALUE ZEROES. EXEC SQL INCLUDE SQLCA END-EXEC. COPY CCSQLMSG. *--------------------------------------------------------------- PROCEDURE DIVISION. *--------------------------------------------------------------- EXEC SQL CALL HOURS.GETPREMSUM (:V-SSN, :V-DATE, :V-ANSWER, :V-SQLCD) END-EXEC. MOVE SQLCODE TO CCSQLMSG-SQLCODE. IF CCSQLMSG-SQLCODE-OK CONTINUE ELSE IF CCSQLMSG-SQLCODE-NOTFND MOVE 'W' 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 * PERFORM 9999-CALL-ABORT-SUBROUTINE END-IF. DISPLAY 'V-SSN = ' V-SSN. DISPLAY 'V-DATE = ' V-DATE. DISPLAY 'V-ANSWER = ' V-ANSWER. DISPLAY 'V-SQLCD = ' V-SQLCD. EXEC SQL COMMIT END-EXEC. STOP RUN. |
Code: |
CREATE PROCEDURE HOURS.GETPREMSUM (INOUT SSN INTEGER, INOUT PERIOD DATE, INOUT ANSWER CHAR(01), INOUT SQLMSG VARCHAR (720)) LANGUAGE COBOL PARAMETER STYLE GENERAL EXTERNAL NAME FSPS0001 COLLID FOELCOLL SECURITY DB2 WLM ENVIRONMENT WLMTENV1; GRANT EXECUTE ON PROCEDURE HOURS.GETPREMSUM TO PUBLIC ; |
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 CONSTANTS. 05 PGMNAME PIC X(11) VALUE 'FSPS0001 '. 05 TABLE-PREMSUM PIC X(30) VALUE 'HOURS.PREMSUM '. 01 ERROR-MESSAGE. 05 ERROR-LEN PIC S9(4) COMP VALUE +720. 05 ERROR-TEXT-COMP PIC X(720) VALUE SPACES. 05 ERROR-TEXT REDEFINES ERROR-TEXT-COMP PIC X(72) OCCURS 10 TIMES INDEXED BY ERROR-INDEX. 77 ERROR-TEXT-LEN PIC S9(9) COMP VALUE +72. COPY CCSQLMSG. EXEC SQL INCLUDE PRMSUM END-EXEC. EXEC SQL INCLUDE SQLCA END-EXEC. / *--------------------------------------------------------------- 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. 01 V-SQLMSG PIC X(720) VALUE SPACES. *01 V-SQLCD PIC S9(9) USAGE COMP * VALUE ZEROES. *--------------------------------------------------------------- PROCEDURE DIVISION USING V-SSN V-DATE V-ANSWER V-SQLMSG. *--------------------------------------------------------------- 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. CALL 'DSNTIAR' USING SQLCA ERROR-MESSAGE ERROR-TEXT-LEN. MOVE ERROR-TEXT-COMP TO V-SQLMSG. IF PREMSUM-BAL-MED NOT EQUAL SPACES MOVE PREMSUM-BAL-MED TO V-ANSWER ELSE MOVE 'G' TO V-ANSWER. MOVE PREMSUM-SSNO TO V-SSN. MOVE PREMSUM-PSTPERIOD TO V-DATE. EXEC SQL COMMIT END-EXEC. GOBACK. |
output generated using printer-friendly topic mod. All times are GMT - 5 Hours