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 :

CL et instructions SQL


Sujet :

AS/400

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2006
    Messages : 106
    Points : 37
    Points
    37
    Par défaut CL et instructions SQL
    Bonjour,

    J'ai un fichier F1 sur lequel je voudrais exécuter une requête SELECT avec des conditions (WHERE...) et le résultat est le contenu d'une zone unique (exemple le nom d'un utilisateur).
    Je voudrais écrire la requête dans un membre source exemple REQUETE1 et l'appeler à partir d'un programme CL (ou une commande) avec retour de cette variable.
    Comment faire.
    Merci d'avance.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 691
    Points : 996
    Points
    996
    Par défaut
    Bonjour,

    Pas de SQL en CL (CLP ou CLLE).
    Je te conseille donc d'appeler un SQLRPGLE avec le(s) paramètre(s) adéquat(s), et qui lui, exécutera la requête, récupérera la donnée voulue et la retournera au CL.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2006
    Messages : 106
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par m4k-Hurrican Voir le message
    Bonjour,

    Pas de SQL en CL (CLP ou CLLE).
    Je te conseille donc d'appeler un SQLRPGLE avec le(s) paramètre(s) adéquat(s), et qui lui, exécutera la requête, récupérera la donnée voulue et la retournera au CL.
    Et si on utilisait QMQRY ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 691
    Points : 996
    Points
    996
    Par défaut
    A moins que je fasse erreur (je ne pratique plus depuis longtemps), QMQRY ne te permettra pas de récupérer une variable.

    Franchement il ne faut pas se casser la tête, mets ta requête SQL dans une procédure RPGLE, et appelle cette procédure dans un CLLE.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2006
    Messages : 106
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par m4k-Hurrican Voir le message
    A moins que je fasse erreur (je ne pratique plus depuis longtemps), QMQRY ne te permettra pas de récupérer une variable.

    Franchement il ne faut pas se casser la tête, mets ta requête SQL dans une procédure RPGLE, et appelle cette procédure dans un CLLE.

    Désolé mais je ne parle pas RPGLE.
    Y a t-il moyen de le faire avec CL ?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 691
    Points : 996
    Points
    996
    Par défaut
    Non, comme indiqué précédemment ce n'est pas possible.

    Le RPGLE n'est pas complexe, surtout si tu le limites à des accès SQL. Tu devrais vraiment prendre le temps de te pencher dessus.

  7. #7
    Membre averti
    Homme Profil pro
    Analyste-Programmeur IBM i, IBM Cognos TM1
    Inscrit en
    Août 2002
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur IBM i, IBM Cognos TM1
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2002
    Messages : 234
    Points : 355
    Points
    355
    Par défaut
    Bonjour,

    Pour ma part, je ne fait plus de CL, si j'ai des commandes à exécuter, j'utilise l'API QCMDEXC.
    Faire un RPGLE ou SQLRPGLE n'est pas compliqué du tout, le faire en CL, un retour en arrière.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     * exécution de commandes                                       
    D StdCmd          S            500A                             
    D StdLen          S             15P 5                           
    D Execute         PR                  ExtPgm('QCMDEXC')         
    D     CmdStr                          Like(StdCmd)              
    D                                     Options(*VarSize)         
    D                                     Const                     
    D     CmdStrLen                       Like(StdLen) Const        
    D var1            S                   Like(StdCmd)              
    D var2            S                   Like(stdLen)              
    D                                     Inz(%size(var1))
    et ça s'exécude comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var1 ='CLRPFM FILE(MALIB/MONFICHIER)';     
    execute(var1:var2);
    Pour un sql en sqlrpgle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     exec sql                                                        
      select * into :MABASE from MONFIC where MAZONE= :MAZONE 
      fetch first row only;
    Rien de bien compliqué.

    Larry57

Discussions similaires

  1. Instruction SQL dans un bouton pour filtrer info formulaire
    Par beegees dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 05/09/2005, 13h26
  2. Réponses: 3
    Dernier message: 06/10/2004, 15h38
  3. Instruction SQL et Date
    Par Didier100 dans le forum Bases de données
    Réponses: 11
    Dernier message: 19/07/2004, 18h20
  4. Instruction SQL qui supprime une colonne d'une table
    Par tseg dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2003, 20h47
  5. Passer de la zone d'édition vers une instruction sql
    Par tripper.dim dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/11/2002, 14h44

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