IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DB2 Discussion :

Utiliser un curseur déjà créé dans une procédure stockée


Sujet :

DB2

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Utiliser un curseur déjà créé dans une procédure stockée
    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 ?

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut Sql Cli
    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.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Quelqu'un peut me donner un exemple d'utilisation d'un SLQDESCRIBECOL
    dans un programme RPGLE ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut Slqdescribecol
    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 ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    sorry, c'est SQLDescribeCol, instruction SCLI CLI

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Regarde ici
    et .

    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.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Sqlcli
    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 ?

Discussions similaires

  1. Réponses: 9
    Dernier message: 28/05/2011, 15h47
  2. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  3. Réponses: 1
    Dernier message: 12/12/2007, 13h46
  4. Réponses: 1
    Dernier message: 06/08/2007, 11h02
  5. Transformation de date dans une procédure stockée
    Par bd0606 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/10/2003, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo