================================================================================ procédure cataloguée DSPLIBL, charge une DS à occurences avec *LIBL et retourne cette DS comme un curseur (paquet d'enregistrement en réponse) ================================================================================ DDSlibl ds occurs(265) D unebib 10 DUSRlibl ds d tblibl 11 dim(265) D i S 5I 0 D R S 5I 0 Drtvlibl PR EXTPROC('DSPLIBLC') D 2750 /free rtvlibl(USRLIBL); for i=1 to 265; if tblibl(i) = *blanks and i > 15; // on est dans USRLIBL leave; else; if tblibl(i) <> *blanks; R = R + 1; %occur(DSlibl) = R; unebib = tblibl(i); endif; endif; endfor; /end-free C/EXEC SQL C+ SET RESULT SETS ARRAY :DSLIBL FOR :R ROWS C/END-EXEC /free return; /end-free ============================= CL, (linké) retournant *LIBL ============================= PGM PARM(&LIBL) DCL VAR(&LIBL) TYPE(*CHAR) LEN(2915) DCL VAR(&USRLIBL) TYPE(*CHAR) LEN(2750) DCL VAR(&SYSLIBL) TYPE(*CHAR) LEN(165) RTVJOBA USRLIBL(&USRLIBL) SYSLIBL(&SYSLIBL) CHGVAR VAR(&LIBL) VALUE(&SYSLIBL *CAT &USRLIBL) ENDPGM ================================================================== enregistrement de la procédure cataloguée dans les catalogues SQL ================================================================== -- DROP PROCEDURE AF4TOOL/DSPLIBL; CREATE PROCEDURE AF4TOOL/DSPLIBL LANGUAGE RPGLE NOT DETERMINISTIC CONTAINS SQL EXTERNAL NAME AF4TOOL/DSPLIBL PARAMETER STYLE GENERAL ; ========================================================================================== macro NETDATA, utilisant cette procédure cataloguée (mais ca marche aussi avec ODBC/JDBC) ========================================================================================== %function(DTW_SQL) query() { call af4tool.dsplibl %report{ %row{ %}
$(N1)
$(V1)
%} %message{ default: "

Liste effectuée" :CONTINUE %} %} %html(result){ contenu de *LIBL

Liste des bibliothèques

@query() %}