CPP de la cde RTVSQLSRC

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





©AF400