Bonjour,
J'ai une proc stock SQL qui a des problèmes.
Je voulais savoir s'il était possible de mettre dedans un strdbg + strbdmon + chgjob ?
J'ai essayé avec cl:strdbg; mais la proc stock ne se compile pas.
Bonjour,
J'ai une proc stock SQL qui a des problèmes.
Je voulais savoir s'il était possible de mettre dedans un strdbg + strbdmon + chgjob ?
J'ai essayé avec cl:strdbg; mais la proc stock ne se compile pas.
Tu pourrais déboguer le code C généré par la procédure mais si tu ne connais pas le langage C, ce n'est pas évident de mettre les points d'arrêts en place dans le code source. Aussi, pour éviter de me prendre la tête avec ça, voila ce que je fais pour me simplifier la vie si j'ai besoin de deboguer mes procédures.
J'ai créé une procédure externe SNDPGMMSGP qui affiche le paramètre que je lui passe, ce qui me permet de voir le contenu des variables de la procédure à déboguer. En voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CL SNDPGMMSGC pgm &msg dcl &msg *char 512 sndpgmmsg &msg endpgmDans la procédure à déboguer, j'insère ensuite un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Procédure SNDPGMMSGP à laquelle j'ai associé le CL SNDPGMMSGC ci-dessus DROP PROCEDURE SNDPGMMSGP; CREATE PROCEDURE SNDPGMMSGP(IN Msg CHAR (512 )) LANGUAGE CL NOT DETERMINISTIC NO SQL EXTERNAL NAME SNDPGMMSGC PARAMETER STYLE GENERAL;
partout où je veux voir le contenu de ma variable MaVar, ce qui en général suffit pour trouver d'où provient le problème. Evidemment, lors du passage en live, je supprime ou mets tous ces "CALL SNDPGMMSGP" en commentaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part CALL SNDPGMMSGP ( MaVar );
C'est simple à faire, c'est universel pour toutes les procédures et surtout cela devrait t'aider à solutionner ton cas.
Tu peux bien entendu, ajouter toutes les commandes que tu veux dans le CL.
Partager