Come eseguire un comando AS400 tramite JDBC/ODBC

In un precedente post abbiamo visto come eseguire un programma AS400 tramite JDBC/ODBC. Occupiamoci ora di come eseguire un comando tramite questa interfaccia.
Continue reading ‘Come eseguire un comando AS400 tramite JDBC/ODBC’ »

Come richiamare un programma AS400 da Java o Access

E’ possibile richiamare un qualsiasi programma AS400 da una connessione JDBC utilizzando lo statement SQL CALL. Questo non solo dal Toolbox for Java, ma, teoricamente, da una qualsiasi connessione ODBC/JDBC.
Se non si devono ricevere dei parametri di ritorno dal programma, non è necessario creare anticipatamente una definizione di Stored procedure, altrimenti occorre prima definire la procedura con lo statement SQL CREATE PROCEDURE.
Continue reading ‘Come richiamare un programma AS400 da Java o Access’ »

Exit programs per il controllo delle connessioni ODBC/JDBC

Su AS400 è possibile effettuare il controllo di ogni connessione ODBC/JDBC tramite l'uso di Exit Programs che possono essere mandati in esecuzione:
  1) Al collegamento di ogni client; (Punto di uscita QIBM_QZDA_INIT)
  2) Prima dell’esecuzione di ogni statement SQL. (Punto di uscita QIBM_QZDA_SQL1)
Tali programmi, gestiti con il comando WRKREGINF, ricevono in ingresso i dati della richiesta (profilo utente, statement SQL...) e restituiscono un flag che indica se accettarla.
Vediamo un semplice programma CL per il controllo del collegamento:

             PGM        PARM(&STATUS &REQUEST)
/* Flag di accettazione/rifiuto richiesta */
             DCL        VAR(&STATUS) TYPE(*CHAR) LEN(1)
/* Parametro di ingresso contenente anche il nome utente */
             DCL        VAR(&REQUEST) TYPE(*CHAR) LEN(2000)
             DCL        VAR(&UTENTE) TYPE(*CHAR) LEN(10)
/* Di default rifiuto tutte le connessioni */
             CHGVAR     VAR(&STATUS) VALUE('0')
/* Recupero nome utente */
             CHGVAR     VAR(&UTENTE) VALUE(%SST(&REQUEST 1 10))
/* Abilito solo le connessioni di FRANCO */
             IF         COND(&UTENTE *EQ 'FRANCO') THEN(CHGVAR +
                          VAR(&STATUS) VALUE('1'))
             ENDPGM

Per attivare il programma si utilizzi il comando
ADDEXITPGM EXITPNT(QIBM_QZDA_INIT) FORMAT(ZDAI0100) PGMNBR(1) PGM(LIB/PGM)
che avrà effetto al riavvio di tutti i programmi QZDASOINIT (programmi sever che gestiscono le chiamate ODBC/JDBC).