2008-10-29 11 views

Répondre

3

Il peut y avoir 2 options:

Dans le programme CL créer un membre de source temporaire. Construisez l'instruction SQL avec les paramètres fournis pour exécuter la procédure stockée et écrire ce code source dans le membre temporaire. Puis ajoutez un appel à RUNSQLSTM avec le membre généré en tant que paramètre.

Une deuxième option n'est pas de créer un programme CL mais d'utiliser RPG/COBOL. En utilisant Embedded SQL, la procédure stockée peut être exécutée avec les paramètres. Leurs valeurs doivent être transmises de la commande au programme.

+0

Je pense que votre deuxième idée est la meilleure pour moi - merci. Ce serait bien de pouvoir appeler directement une procédure! –

2

À un moment donné, il y avait une commande que quelqu'un écrivait que j'avais utilisée. Je ne trouve pas cette référence plus, mais j'ai deux autres options:

  1. This article utilise REXX
  2. This article utilise RPG

Ils ont tous deux inclure la source dont vous avez besoin pour obtenir la commande de travail.

5

Vous pouvez appeler le programme système QZDFMDB2 et lui passer un paramètre avec la chaîne SQL à exécuter. Dans ce cas, la chaîne SQL est l'appel à votre procédure stockée:

CALL PGM(QZDFMDB2) PARM('CALL PROCEDURE (''XYZ'', ''ABC'')') 

Pour remplacer vos valeurs utilisent une variable pour le PARM:

DCL VAR(&CALL) TYPE(*CHAR) LEN(200) 

    CHGVAR VAR(&CALL) 
    VALUE('CALL PROCEDURE (''' *CAT &PARM1 *TCAT ''', ''' *CAT &PARM2 *TCAT ''')') 

    CALL PGM(QZDFMDB2) PARM(&CALL) 
+0

Pour indiquer l'emplacement ou la bibliothèque de la procédure, voici un exemple: 'CALL PGM (QZDFMDB2) PARM ('CALL LIBRARY.PROCEDURE (' 'XYZ' ',' 'ABC' ')')' –

0

QCMDEXC pourrait être la commande que vous recherchez.

Questions connexes