Depuis la TR4 de la version V7R4, vous pouvez utiliser la fonction QCMDEXC
C’est l’occasion de faire un rappel sur les différents usages disponibles jusque la
1 ) C’est une API (un programme) que vous pouvez appelez depuis un programme RPG ou CLP
en RPGLE
Dcl-Pr Exec_Commande QCMDEXC ExtPgm(‘QCMDEXC’);
Cmd Char(3000) Const;
CmdLen packed(15:5) Const;
End-Pr;
Dcl-S Gbl_Cmd Char(3000);
Gbl_Cmd = ‘Votre commande’ ;
Exec_commande(Gbl_Cmd : %len(Gbl_Cmd)) ;
En CLLE
PGM
DCL &CMD *CHAR 300
DCL &LEN *DEC (15 5)
CHGVAR &CMD (‘VOTRE COMMANDE’)
CHGVAR &LEN %LEN(&CMD)
CALL QCMDEXC (&CMD &LEN)
2) C’est une procédure SQL
call qcmdexc(‘votre commande’)
en SQL embarqué
Dcl-S Gbl_Cmd Char(3000);
call qcmdexc(:Gbl_Cmd)
3) C’est une Fonction SQL à partir de la TR4
Réorganisation des fichiers BD
SELECT qcmdexc(‘RGZPFM FILE(‘ concat
trim(substr(TABLE_SCHEMA, 1 , 10))
concat ‘/’ concat
substr(TABLE_NAME, 1 , 10) concat ‘)’) as résultat
FROM systables WHERE TABLE_SCHEMA =
‘GDATA’ and FILE_TYPE = ‘D’
la fonction renvoi 1 si ok et -1 si ko
Conclusion :
Vous avez un aperçu des possibilités qcmdexc sur la machine, à vous de jouer !