CPP --> CRTSQLTAB

BoTTom |
             PGM        PARM(&TBLLIB &LISTE &TXT &AUT)
             DCL &TBLLIB *CHAR 20
             DCL &LISTE *CHAR 752
             DCL &TXT *CHAR 50
             DCL &AUT *CHAR 8
             DCL &TBL *CHAR 10
             DCL &LIB *CHAR 10
             DCL &SQL *CHAR 2000
             DCL        VAR(&LEN) TYPE(*DEC) LEN(15 5) VALUE(2000)
             DCL        &ERRORSW *LGL                     /* Std err */
             DCL        &MSGID *CHAR LEN(7)               /* Std err */
             DCL        &MSGDTA *CHAR LEN(100)            /* Std err */
             DCL        &MSGF *CHAR LEN(10)               /* Std err */
             DCL        &MSGFLIB *CHAR LEN(10)            /* Std err */
             MONMSG     MSGID(CPF0000) EXEC(GOTO STDERR1) /* Std err */
             CHGVAR &TBL %SST(&TBLLIB 1 10)
             CHGVAR &LIB %SST(&TBLLIB 11 10)
             CHKOBJ     OBJ(&LIB/&TBL) OBJTYPE(*FILE)
             MONMSG CPF9801 EXEC(DO)
             RCVMSG     MSGTYPE(*EXCP)
             GOTO SUITE
             ENDDO
             SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Fichier +
                          ' *CAT &TBL *BCAT 'Existe déja dans ' *CAT +
                          &LIB) MSGTYPE(*ESCAPE)
 SUITE:      IF ((&LIB = '*CURLIB') *OR (&LIB = '*LIBL')) GOTO APPEL
             CHKOBJ     OBJ(&LIB) OBJTYPE(*LIB) AUT(*ADD)
 APPEL:      CALL       PGM(CRTSQLTR1) PARM(&LISTE &SQL)
             CHGVAR     VAR(&SQL) VALUE('CREATE TABLE ' *CAT &LIB +
                          *TCAT '/' *CAT &TBL *BCAT '(' *CAT &SQL +
                          *TCAT ')')
             CALL       PGM(SQLEXCL) PARM(&SQL &LEN)
 
               IF (&TXT *NE '*SQLTXT') DO
             CHGOBJD    OBJ(&LIB/&TBL) OBJTYPE(*FILE) TEXT(&TXT)
               ENDDO
             RVKOBJAUT  OBJ(&LIB/&TBL) OBJTYPE(*FILE) USER(*PUBLIC) +
                          AUT(*ALL)
               MONMSG CPF0000
             GRTOBJAUT  OBJ(&LIB/&TBL) OBJTYPE(*FILE) USER(*PUBLIC) +
                          AUT(&AUT)
               MONMSG CPF0000
 COMP:       RCVMSG     MSGTYPE(*COMP) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          MSGF(&MSGF) MSGFLIB(&MSGFLIB)


|
             IF         (&MSGID *EQ '       ') RETURN
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) MSGTYPE(*DIAG)
             GOTO       COMP
 STDERR1:               /* Standard error handling routine */
             IF         &ERRORSW SNDPGMMSG MSGID(CPF9999) +
                          MSGF(QCPFMSG) MSGTYPE(*ESCAPE) /* Func chk */
             CHGVAR     &ERRORSW '1' /* Set to fail ir error occurs */
 STDERR2:    RCVMSG     MSGTYPE(*DIAG) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          MSGF(&MSGF) MSGFLIB(&MSGFLIB)
             IF         (&MSGID *EQ '       ') GOTO STDERR3
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) MSGTYPE(*DIAG)
             GOTO       STDERR2 /* Loop back for addl diagnostics */
 STDERR3:    RCVMSG     MSGTYPE(*EXCP) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          MSGF(&MSGF) MSGFLIB(&MSGFLIB)
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE)
             ENDPGM




©AF400