
|
PGM PARM(&DBFILE &SRCFILE &SRCMBR)
dcl &dbfile *char 138
dcl &srcfile *char 20
dcl &srcmbr *char 10
 
dcl &pfname *char 10
dcl &pflib *char 10
dcl &data *char 583
dcl &datalg *char 4
dcl &coderr *char 8 VALUE(X'0000000000000000')
/* VARIABLES UTILISEES PAR LA GESTION DE MESSAGES */
DCL &ERRORSW *LGL /* SWITCH */
DCL &MSGID *CHAR LEN(7) /* ID MSG */
DCL &MSGDTA *CHAR LEN(100) /* DATA */
DCL &MSGF *CHAR LEN(10) /* FICHIER */
DCL &MSGFLIB *CHAR LEN(10) /* BIBLI */
 
MONMSG MSGID(CPF0000) EXEC(GOTO ERREUR)
 
/* CORPS DU PROGRAMME */
 
chgvar &pflib %sst(&dbfile 129 10)
RTVPFNAM NOM(%SST(&DBFILE 1 128)) LIB(&PFLIB) +
NOM10(&PFNAME)
CHKOBJ OBJ(&PFLIB/&PFNAME) OBJTYPE(*FILE) AUT(*USE)
CHKOBJ OBJ(%SST(&SRCFILE 11 10)/%SST(&SRCFILE 1 +
10)) OBJTYPE(*FILE) AUT(*CHANGE)
IF COND(&SRCMBR *EQ '*FILE') THEN(CHGVAR +
VAR(&SRCMBR) VALUE(&PFNAME))
ADDPFM FILE(%SST(&SRCFILE 11 10)/%SST(&SRCFILE 1 +
10)) MBR(&SRCMBR) TEXT('Source SQL du +
fichier ' *cat &pfname) SRCTYPE(SQL)
 
chgvar %bin(&datalg) 583
chgvar %sst(&data 1 258) &pfname
chgvar %sst(&data 259 258) &pflib
chgvar %sst(&data 517 10) 'TABLE'
chgvar %sst(&data 527 10) %sst(&srcfile 1 10)
chgvar %sst(&data 537 10) %sst(&srcfile 11 10)
chgvar %sst(&data 547 10) &srcmbr
chgvar %bin(&data 557 4) 30 /* gravité */
chgvar %sst(&data 561 1) '0' /* remplacement du source*/
chgvar %sst(&data 562 1) '0' /* stmf ? */
chgvar %sst(&data 563 3) 'ISO' /* DATFMT */
|
chgvar %sst(&data 566 1) '-' /* DATSEP */ chgvar %sst(&data 567 3) 'ISO' /* TIMFMT */ chgvar %sst(&data 570 1) ':' /* TIMSEP */ chgvar %sst(&data 571 3) 'SYS' /* appellation */ chgvar %sst(&data 574 1) ',' /* décimale */ chgvar %sst(&data 575 1) '0' /* std opt */ chgvar %sst(&data 576 1) '0' /* drop opt */ chgvar %bin(&data 577 4) 0 /* msg level */ chgvar %sst(&data 581 1) '1' /* commentaires */ chgvar %sst(&data 582 1) '1' /* label on */ chgvar %sst(&data 583 1) '1' /* entête */   call QSQGNDDL parm(&data &datalg 'SQLR0100' &coderr)   /* RENVOI DES MESSAGES DE TYPE *COMP SI FIN NORMALE */ COMPMSG: RCVMSG MSGTYPE(*COMP) MSGDTA(&MSGDTA) MSGID(&MSGID) + MSGF(&MSGF) SNDMSGFLIB(&MSGFLIB) IF (&MSGID *EQ ' ') RETURN /* FIN DU PGM */ SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) + MSGDTA(&MSGDTA) MSGTYPE(*COMP) GOTO COMPMSG /* BOUCLE SUR MESSAGES *COMP */   /*----------------------------------------*/ ERREUR: /* GESTION DES ERREURS */ /*----------------------------------------*/ IF &ERRORSW SNDPGMMSG MSGID(CPF9899) + MSGF(QCPFMSG) MSGTYPE(*ESCAPE) /* 2EME FOIS*/ /* ARRET PGM*/ CHGVAR &ERRORSW '1' /* MISE EN PLACE DU SWITCH */   /* RENVOI DES MESSAGES DE TYPE *DIAG SI FIN ANORMALE */ DIAGMSG: RCVMSG MSGTYPE(*DIAG) MSGDTA(&MSGDTA) MSGID(&MSGID) + MSGF(&MSGF) SNDMSGFLIB(&MSGFLIB) IF (&MSGID *EQ ' ') GOTO EXCPMSG SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) + MSGDTA(&MSGDTA) MSGTYPE(*DIAG) GOTO DIAGMSG /* BOUCLE SUR MESSAGES *DIAG */   /* RENVOI DU MESSAGE D'ERREUR */ EXCPMSG: RCVMSG MSGTYPE(*EXCP) MSGDTA(&MSGDTA) MSGID(&MSGID) + MSGF(&MSGF) SNDMSGFLIB(&MSGFLIB) SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) + MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE) ENDPGM |