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

AS/400 Discussion :

récuperer dans une zone le nombre d'enreg mis à jour


Sujet :

AS/400

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 24
    Par défaut récuperer dans une zone le nombre d'enreg mis à jour
    bonjour

    j'aimerais savoir comment récupérer le nombre d'enregistrements mis à jour (ou supprimer) via sql400

    exemple
    losque je fait en interactif Update tabl1 set zone1=2 where zone4= 6

    a la fin de l'exéction sql affiche le nombre d'enregistrements mis à jour(ou supprimer)

    je voudrais savoir comment récupérer ce nombre dans une variable telle que lorsque je lance la commande RunSqlStm contenant ma procédure d'Update(Delete) j'affiche ce nombre sur un écran 5250 par exemple.

    Si ce n'est pas possible est-il possible de récupérer les enregistrements mis à jour (ou supprimer) dans un fichier log.

    Merci de votre aide

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Février 2009
    Messages : 92
    Par défaut
    Je ne pense pas que ce soit possible avec un RUNSQLSTM de récupérer cette info directement mais tu peux dans le paramêtre OUTPUT précisé *PRINT et tu auars l'info dans un Spool.

    Si tu veux le recupérer à l'écran , l'ideal c'est de créer un SQLRPG de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    C/EXEC SQL                                      
    C+ Update tabl1 set zone1=2 where zone4= 6
    C/END-EXEC                                      
    C                     Z-ADDSQLER3    COUNTN  60
    SQLER3 contient le nombre d'enregistrements mis à jour

  3. #3
    Membre Expert

    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
    Par défaut
    AMHA, le plus simple est de créer une procédure stockée pour obtenir ce type de résultat.

    On ne peut pas définir de variables ni passer des paramètres dans un membre qui ne contient que des instructions en dur. En revanche, on peut facilement transformer ce membre en procédure stockée. En voici un exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    DROP PROCEDURE MaBib/MaPS;
    CREATE PROCEDURE MaBib/MaPS()
    LANGUAGE SQL
    BEGIN
        DECLARE rcount int;
        DECLARE msg char(50);
        -- MàJ de la table
        Update tabl1 set zone1=2 where zone4= 6;
        -- Récupération nbre de ligne màj
        GET DIAGNOSTICS rcount = ROW_COUNT;
        -- Préparation envoi résultat
        SET msg = 'sndmsg msg(''' concat TRIM(CHAR(rcount)) concat
                              ' rows updated' concat ''')' concat
                              ' tousr(' concat USER concat ')';
        -- Emission du message
        CALL qcmdexc(msg, 0000000050.00000);
    END
    Compiler avec RUNSQLSTM avec COMMIT(*NONE) et ERRLVL(20).
    Appeler directement la PS par CALL (ou via STRSQL) si elle ne comporte pas de paramètres : Si ajout de paramètres en input, aller d'abord sous STRSQL puis appeler la PS par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CALL MaBib/MaPS ( p1, p2, ... )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comparaison de Nombre dans une zone de texte
    Par kiki89 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2008, 11h20
  2. Réponses: 3
    Dernier message: 15/03/2007, 12h36
  3. Réponses: 12
    Dernier message: 09/01/2007, 14h28
  4. Réponses: 3
    Dernier message: 27/09/2006, 11h35
  5. Réponses: 13
    Dernier message: 29/03/2006, 21h00

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