Rational Developer for System z, version 7.6.1

Code source COBOL

Exemple de code source COBOL pour créer un exemple de procédure mémorisée.

Fonction

Vous pouvez appliquer ce code pour créer un exemple de procédure mémorisée avec le langage COBOL.
      ***************************************************
      * procédure mémorisée COBOL 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.

Conditions d'utilisation | Commentaires

Ce centre de documentation utilise la technologie Eclipse. (http://www.eclipse.org)