|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 7 ![]() |
Plateforme iseries , Language RPG ILE , système DB2400.
1) J'ai créé une procedure stockée (TEST) comme suite : BEGIN DECLARE C1 SCROLL CURSOR WITH RETURN TO CLIENT FOR SELECT F1 . TPNARG AS TPNARG , F1 . TPNVAC AS TPNVAC , F1 .TPNVLO AS TPNVLO , F1 . TPLLVF AS TPLLVF FROM D_PRO_F . TVTCATP AS F1 WHERE TPNCLI = 3331 ; OPEN C1 ; SET RESULT SETS CURSOR C1 ; END 2) J'ai un programme RPG de type SQLRPGLE : C/EXEC SQL C+ CALL LIB/TEST => Appel de la procédure stockée C/END-EXEC * C/EXEC SQL C+ FETCH NEXT FROM C1 INTO :tpnarg, :tpnvac, :tpvnvlo :tpllvf C/END-EXEC J'ai 2 problèmes : a) Si je compile normalement le pgm, erreur car C1 inexistant. b) si je compile evec code gravité 40 => ok pour la compile mais à l'exécution idem, il ne veux pas du fetch. Commant puis-je résoudre ce problème ? C'est à dire pour pouvoir exploiter le curseur C1 (ouvert dans la procédure stockée) dans mon programme RPG ? |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Sur l'AS/400-iSeries-i5..., avec un programme de type SQLRPGxx, c'est à dire avec SQL intégré (embedded SQL), tu ne peux récupérer un curseur (RESULT SET) qu'en programmant avec SQL CLI.
Va voir ici sur mon site un exemple complet de récupération des lignes d'une table à partir d'un curseur. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 7 ![]() |
Quelqu'un peut me donner un exemple d'utilisation d'un SLQDESCRIBECOL
dans un programme RPGLE ? |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Je ne connais pas l'instruction SLQDESCRIBECOL.
Je connais DESCRIBE pour obtenir des infos sur une instruction préparée par PREPARE, mais pas celle que tu cites. Qu'est censée faire une telle instruction ? |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 7 ![]() |
sorry, c'est SQLDescribeCol, instruction SCLI CLI
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Regarde ici
et là. Dans un programme RPG ou autre supportant SQL et où existent des instructions SQL CLI, tu peux sans problème y faire coexister des instructions SQL intégré ( Exec SQL ... /End-Exec). Mais que cherches-tu donc à faire ? Programmer le fonction CLI SQLDESCRIBECOL et récupérer le resultset n'est pas chose aisée. |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 7 ![]() |
J'utilise l'instruction sqlbindcol dans mon programme rpg pour récupéré une info
venant de ma procédure stockée comme suite : if sqlbindcol( hstmt : 20 : sql_char : %addr( JREXA3 ) : %len( JREXA3 ) : p_lgr_JREXA3 ) < 0 exsr errorrtn endif Ceci fonctionne, mais lorsque je veux utiliser la 21 zone de mon curseur, cela pose un problème. if sqlbindcol( hstmt : 21 : sql_char : %addr( JREXA4 ) : %len( JREXA4 ) : p_lgr_JREXA4 ) < 0 exsr errorrtn endif Qui a une solution ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com