home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0000 - 0009 / ibm0000-0009 / ibm0003.tar / ibm0003 / ORACLE17.ZIP / TESTEXIT.PCO < prev   
Encoding:
Text File  |  1987-07-06  |  2.2 KB  |  76 lines

  1.       *
  2.       *  Copyright (C) 1987 by Oracle Corporation 
  3.       *
  4.        IDENTIFICATION DIVISION.
  5.        PROGRAM-ID. TESTEXIT.
  6.        ENVIRONMENT DIVISION.
  7.        CONFIGURATION SECTION.
  8.        SOURCE-COMPUTER. IBM-PC.
  9.        OBJECT-COMPUTER. IBM-PC.
  10.        DATA DIVISION.
  11.        WORKING-STORAGE SECTION.
  12.  
  13.       *
  14.       * User exit variables referenced in EXEC SQL or EXEC IAF
  15.       * commands must be declared in a DECLARE section.
  16.       *
  17.            EXEC SQL BEGIN DECLARE SECTION END-EXEC.
  18.  
  19.        01   ENAME         PIC X(30)          VALUE SPACES.
  20.       *
  21.        EXEC SQL END DECLARE SECTION END-EXEC.
  22.       *
  23.       *
  24.       * Define symbols used to interface with SQL*Forms
  25.       *
  26.        EXEC SQL INCLUDE SQLCA END-EXEC.
  27.       *
  28.       *
  29.       * Error return variables.
  30.       *
  31.        01   ERROR-TEXT    PIC X(80).
  32.        01   ERROR-LEN     PIC S9(9).
  33.  
  34.        LINKAGE SECTION.
  35.       *
  36.       * String and length containing the user exit name and parameter.
  37.        01   CMD-LINE               PIC X(80).
  38.        01   CMD-LINE-LEN        PIC S9(9) COMP-5.
  39.  
  40.       * String and length for the error message defined in the trigger
  41.       * that invoked the exit.
  42.        01   ERR-MSG            PIC X(80).
  43.        01   ERR-MSG-LEN         PIC S9(9) COMP-5.
  44.  
  45.       * If user exit was invoked from a post-query trigger, 1; else 0.
  46.        01   IN-QUERY            PIC S9(9) COMP-5.
  47.  
  48.        PROCEDURE DIVISION
  49.        USING CMD-LINE CMD-LINE-LEN ERR-MSG ERR-MSG-LEN IN-QUERY.
  50.  
  51.        EXEC SQL WHENEVER SQLERROR GOTO SQL-ERROR END-EXEC.
  52.        EXEC IAF GET EMP.ENAME INTO :ENAME END-EXEC.
  53.  
  54.            IF ENAME = "OATES"
  55.            EXEC IAF PUT EMP.COMMENT
  56.                VALUES ('is a very nice man')
  57.            END-EXEC.
  58.  
  59.            MOVE "EXEC IAF success" TO ERROR-TEXT.
  60.            MOVE 16 TO ERROR-LEN.
  61.            CALL "C_SQLIEM" USING ERROR-TEXT ERROR-LEN.
  62.            MOVE SQL-IAPXIT-SUCCESS TO RETURN-CODE.
  63.            GO TO PRG-EXIT.
  64.  
  65.       *
  66.       * Error exit routine for routine.
  67.       *
  68.        SQL-ERROR.
  69.            MOVE "EXEC IAF error" TO ERROR-TEXT.
  70.        MOVE 14 TO ERROR-LEN.
  71.        CALL "C_SQLIEM" USING ERROR-TEXT ERROR-LEN.
  72.        MOVE SQL-IAPXIT-FAILURE TO RETURN-CODE.
  73.  
  74.         PRG-EXIT.
  75.        EXIT PROGRAM.
  76.