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