Rational Developer for System z バージョン 7.6.1

COBOL ソース・コード

サンプル・ストアード・プロシージャーの作成に使用できる COBOL ソース・コード・サンプル。

目的

このコードで COBOL を使用したサンプル・ストアード・プロシージャーを作成できます。
      ***************************************************
      * COBOL Stored Procedure SAMPLE.COBSAMP
      * @param Action
      * @param City
      * @param Country
      * @param Response
      ***************************************************
       IDENTIFICATION DIVISION.
       PROGRAM-ID. COBSAMP.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
            EXEC SQL INCLUDE SQLCA END-EXEC.
       01 Sqlcode-Pic PIC +++999 USAGE DISPLAY.
       LINKAGE SECTION.
       01 Action.
            49 VAR-LEN  PIC S9(4)  USAGE BINARY.
            49 VAR-TEXT PIC X9(8)  USAGE DISPLAY.
       01 City.
            49 VAR-LEN  PIC S9(4)  USAGE BINARY.
            49 VAR-TEXT PIC X9(32) USAGE DISPLAY.
       01 Country.
            49 VAR-LEN  PIC S9(4)  USAGE BINARY.
            49 VAR-TEXT PIC X9(32) USAGE DISPLAY.
       01 Response.
            49 VAR-LEN  PIC S9(4)  USAGE BINARY.
            49 VAR-TEXT PIC X9(80) USAGE DISPLAY.
       PROCEDURE DIVISION USING
            Action
            City
            Country
            Response.
            Move Function Upper-case(VAR-TEXT of Action)
              to VAR-TEXT of Action
            Evaluate VAR-TEXT of Action(1:VAR-LEN of Action)
              When 'S'
              When 'SELECT'
                Evaluate true also true
                  When VAR-LEN of City = 0 also VAR-LEN of Country = 0
                    EXEC SQL
                      DECLARE C1 CURSOR WITH RETURN WITH HOLD FOR
                        SELECT * FROM SAMPLE.CITYTABLE
                    END-EXEC
                    EXEC SQL
                      OPEN C1
                    END-EXEC
                  When VAR-LEN of City = 0 also VAR-LEN of Country > 0
                    EXEC SQL
                      DECLARE C2 CURSOR WITH RETURN WITH HOLD FOR
                        SELECT * FROM SAMPLE.CITYTABLE
                          WHERE COUNTRY=:COUNTRY
                    END-EXEC
                    EXEC SQL
                      OPEN C2
                    END-EXEC
                  When VAR-LEN of City > 0 also VAR-LEN of Country = 0
                    EXEC SQL
                      DECLARE C3 CURSOR WITH RETURN WITH HOLD FOR
                        SELECT * FROM SAMPLE.CITYTABLE
                          WHERE CITY=:CITY
                    END-EXEC
                    EXEC SQL
                      OPEN C3
                    END-EXEC
                  When Other
                    EXEC SQL
                      DECLARE C4 CURSOR WITH RETURN WITH HOLD FOR
                        SELECT * FROM SAMPLE.CITYTABLE
                          WHERE CITY=:CITY AND COUNTRY=:COUNTRY
                    END-EXEC
                    EXEC SQL
                      OPEN C4
                    END-EXEC
                End-Evaluate
                If Sqlcode = 0 then
                  String 'Select successful'
                    delimited by Size into VAR-TEXT of Response
                Else
                  Move SQLCode to SQLCode-Pic
                  String 'Select unsuccessful: Sqlcode ' Sqlcode-Pic
                    delimited by Size into VAR-TEXT of Response
                End-If
              When 'I'
              When 'INSERT'
                Evaluate true also true
                  When VAR-LEN of City = 0 also VAR-LEN of Country = 0
                    String 'Insert unsuccessful: '
                           'City and Country not specified'
                      delimited by Size into VAR-TEXT of Response
                  When VAR-LEN of City = 0 also VAR-LEN of Country > 0
                    String 'Insert unsuccessful: City not specified'
                      delimited by Size into VAR-TEXT of Response
                  When VAR-LEN of City > 0 also VAR-LEN of Country = 0
                    String 'Insert unsuccessful: Country not specified'
                      delimited by Size into VAR-TEXT of Response
                  When Other
                    EXEC SQL
                      INSERT INTO SAMPLE.CITYTABLE
                        (CITY, COUNTRY) VALUES (:CITY, :COUNTRY)
                    END-EXEC
                    If Sqlcode = 0 then
                      String 'Insert successful'
                        delimited by Size into VAR-TEXT of Response
                    Else
                      Move SQLCode to SQLCode-Pic
                      String 'Insert unsuccessful: Sqlcode ' Sqlcode-Pic
                        delimited by Size into VAR-TEXT of Response
                    End-If
                End-Evaluate
              When 'D'
              When 'DELETE'
                Evaluate true also true
                  When VAR-LEN of City = 0 also VAR-LEN of Country = 0
                    String 'Delete unsuccessful: '
                           'City and Country not specified'
                      delimited by Size into VAR-TEXT of Response
                  When VAR-LEN of City = 0 also VAR-LEN of Country > 0
                    String 'Delete unsuccessful: City not specified'
                      delimited by Size into VAR-TEXT of Response
                  When VAR-LEN of City > 0 also VAR-LEN of Country = 0
                    String 'Delete unsuccessful: Country not specified'
                      delimited by Size into VAR-TEXT of Response
                  When Other
                    EXEC SQL
                      DELETE FROM SAMPLE.CITYTABLE
                        WHERE CITY=:CITY AND COUNTRY=:COUNTRY
                    END-EXEC
                    If Sqlcode = 0 then
                      String 'Delete successful'
                        delimited by Size into VAR-TEXT of Response
                    Else
                      Move SQLCode to SQLCode-Pic
                      String 'Delete unsuccessful: Sqlcode ' Sqlcode-Pic
                        delimited by Size into VAR-TEXT of Response
                    End-If
                End-Evaluate
              When Other
                String 'Action "'
                       VAR-TEXT of Action(1:VAR-LEN of Action)
                       '" not supported'
                  delimited by Size into VAR-TEXT of Response
            End-Evaluate.
            Inspect VAR-TEXT of Response tallying VAR-LEN of Response
              for characters before initial x'00'
            GOBACK.

ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)