
|
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 |