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 :

Query avec select sur un fichier de type PF


Sujet :

AS/400

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Points : 173
    Points
    173
    Par défaut Query avec select sur un fichier de type PF
    Bonjour,

    Je suis à la recherche d'un exemple de query avec une close select a l'intérieur.

    Cette select doit être effectuée sur un fichier de type PF de ma bibliothèque comment l'écrire

    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 91
    Points : 93
    Points
    93
    Par défaut
    Query et SQL sont 2 outils différents sur l'AS400.

    Pour utiliser une clause select en sql :

    STRSQL

    Exemple 1:
    SELECT * FROM mabib/mon fichier
    Exemple 2:
    SELECT mazone1, mazone2 FROM mabib/monfichier WHERE mazone1 = mavaleur
    Exemple 3 :
    SELECT DISTINCT(mazone) FROM mabib/momnfichier
    Exemple 4:
    SELECT mazone1, mazone2 FROM mabib/monfichier WHERE mazone 1 =mavaleur GROUP BY mazone 2 ORDER BY mazone 2

    Attention à l'utilisation de SQL qui permet de saccager sa BDD assez facilement si on ne sait pas l'utiliser correctement. Mais avec la clause SELECT tu ne crains pas grand chose

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Points : 173
    Points
    173
    Par défaut
    Ben alors la super chouette je vais essayer de suite j'te tiens au courant

    Je peut mettre le select dans un query c'est possible?

    Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiii

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 91
    Points : 93
    Points
    93
    Par défaut
    Query est un utilitaire. Pour mettre des conditions il faut aller dans
    "choisir les enregistrements" et renseigner zone,test et valeur.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Points : 173
    Points
    173
    Par défaut
    Mais alors à quoi sert le query que peut-on faire avec???

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Points : 173
    Points
    173
    Par défaut
    Re Iva30

    Ben j'ai essayé le select à partir de mon fichier PF
    Si je fais le select suivant il me donne ce résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    > select * from mabib/essrq
    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
                                      Display Data                                  
                                                  Data width . . . . . . :    1247  
     Position to line  . . . . .              Shift to column  . . . . . .          
     ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....
     Display  Display  Display  Library     Object      Object    Object      Storag
     Century  Date     Time                             Type      Attribute   Freed 
                                                                                    
        1     080909   155407   QSYS        £           *DEVD     DSPVRT         0  
        1     080909   155407   QSYS        ADMINCC     *DEVD     PRTLAN         0  
        1     080909   155407   QSYS        AJKPOIO     *DEVD     PRTVRT         0  
    [....]
        1     080909   155407   QSYS        DSTFFPOP    *DEVD     DSPVRT         0  
        1     080909   155407   QSYS        DSTULTZB1   *DEVD     DSPVRT         0  
                                                                          More...   
     F3=Exit      F12=Cancel      F19=Left      F20=Right      F21=Split
    Si je fais le select suivant ca ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    > select Object from mabib/essrq
    Column OBJECT not in specified tables.

    Je te donne les différentes manip qui mon permis de générer ce fichier:

    Pour créer ce fichier j'ai exécuté la commande suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DSPOBJD OBJ(*ALL) OBJTYPE(*DEVD) OUTPUT(*PRINT)
    Le fichier Spool je l'ai copié dans le fichier essrq de mabib avec les commandes suivante
    1/ Création de mon fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CRTPF FILE(mabib/essrq) rcdlen(500)
    2/ Copie du Spool dans le fichier essrq préalablement créé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CPYSPLF FILE(QPRTOBJD) TOFILE(mabib/essrq)
    Résultat de ma copie dans mabib:

    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
    18
    19
                              Display Physical File Member                          
     File . . . . . . :   ESSRQ               Library  . . . . :   mabib        
     Member . . . . . :   ESSRQ               Record . . . . . :   1                
     Control  . . . . .                       Column . . . . . :   1                
     Find . . . . . . .                                                             
     *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+... 
                                              Display Object Description - Basic    
     xxxxSS1 V5R4M0  060210                                                         
      Library . . . . . . . :   QSYS                                     Library AS 
                                                                         Library AS 
      Object         Type         Attribute                  Size     Text          
      £              *DEVD        DSPVRT                    16384     Device create 
      ADMINCC        *DEVD        PRTLAN                    16384     Admin Printer 
      AJKPOIO        *DEVD        PRTVRT                    20480     Device create 
    [....]
      DSTFFPOP       *DEVD        DSPVRT                    16384     Device create 
      DSTULTZB1      *DEVD        DSPVRT                    16384     Admin Printer 
                                                                            More... 
     F3=Exit   F12=Cancel   F19=Left   F20=Right   F24=More keys
    Est-il possible de faire du select à partir de ce type de fichier ou bien faut-il le formater ou le découper et si oui comment faire.
    Le but je souhaiterai garder la colonne Object et Size comme résultat ceci n'est qu'un exemple bidon mais le principe peut-être réutilisé pour mes besoins sur un autre fichier ou plusieurs.

    Merci

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Si tu copies un spool dans un fichier, le resultat ne donne qu'une seule colonne.
    Maintenant dans ton DSPOBJD fais un F4 dessus, et au lieu de prendre *PRINT, prends *OUTFILE (résultat dans un fichier bien formatté cette fois-ci).
    Dans SQL, l'entête de colonne ne correspond pas forcément avec le nom de la colonne.
    Pour voir les noms de colonnes d'un fichier, dans ton SELECT, fais un F4 aussi.
    Apprends à bien utiliser F4 et F1 pour aide

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Points : 173
    Points
    173
    Par défaut
    Merci K2R400

    Je suis d'accord avec toi mais dans la commande DSPJOBD et d'autre commande il n'y a pas de possibilité de mettre *OUTFILE alors comment formater le fichier pour le rendre utilisable à partir d'une requête.

    Yes super le F4 sur la ligne du select

    Merci 1000000000000000000000000000000 et bonne soirée

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Effectivement, toutes les commandes ne sont pas pourvues de *OUTFILE.
    DSPOBJD possède bien *OUTFILE

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Points : 173
    Points
    173
    Par défaut
    Slt K2R400,

    C'est nickel j'ai réussi à utiliser le select suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT upuprf,UPJBDL FROM mabib/monfichier
    le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
                                      Display Data                                
                                                  Data width . . . . . . :      27
     Position to line  . . . . .              Shift to column  . . . . . .        
     ....+....1....+....2....+..                                                  
     User        Job Description                                                  
                 Library                                                          
     USER1     WSFRAL                                                         
     USER2     WSFRAT                                                         
     USER3     WSFRAS                                                         
    [...]                                             
     USER4     WSFRAL                                                         
                                                     
                                                                          More... 
     F3=Exit      F12=Cancel      F19=Left      F20=Right      F21=Split
    Par contre lorsque je veux afficher que les WSFRAT je n'y arrive pas comment faire????

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Il te faut maîtriser un minimum SQL, une documentation en français que tu trouveras sur le net t'aidera.

    Sinon celà donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT upuprf,UPJBDL FROM mabib/monfichier
    where UPJBDL = 'WSFRAT'

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Points : 173
    Points
    173
    Par défaut
    Ok j'avais oublié les '' avec c'est nettement mieux .

    Merci pour ta doc elle va me servir je crois

    A+

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Points : 173
    Points
    173
    Par défaut
    Slt K2R400

    Nickel pour le sql mais une petite question j'ai créé une table [tab_users] dans ma bibliothèque [mabib] à partir de mon select pas de problème pour le contenu par contre lorsque je regarde les objets de ma bibliothèque j’ai bien un nouveau fichier qui correspond à la création de ma table mais le nom [USER_00001 ]ne correspond pas au nom [tab_users] que je lui et donné lors de la commande create table pourquoi et comment forcer le create table pour qu’il prenne le bon nom [tab_user] ???
    J'ai regardé sur la doc que tu ma donné mais la je suis perdu je ne trouve pas l'explication

    A+

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Sur AS/400 les objets sont limités à 10 caractères, et très peu de caractères spéciaux sont acceptés.
    Si tu fais un create table avec un nom de plus de 10 car, le systeme attribue un nom à lui. D'ailleurs tu pourras faire un select sur les deux noms indifferemment.
    Si tu veux utiliser des noms longs, fais l'inverse.
    Exemple avec un fichier contentieux.

    - Create table mabib/content.......

    Tu crees une table avec un nom inferieur ou egal à 10, puis pour pour lui donner un nom long plus explicite tu utilises l'instruction SQL CREATE ALIAS.

    CREATE ALIAS MABIB/FICHIER_DES_CONTENTIEUX FOR MABIB/CONTENT...fais F4

    Ainsi tu pourras faire un select soit sur CONTENT soit sur FICHIER_DES_CONTENTIEUX

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Points : 173
    Points
    173
    Par défaut
    Ok merci pour l'explication c'est limpide et ça me fera utiliser les ALIAS

    A+

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/08/2011, 15h24
  2. Insert avec select sur table avec Trigger d'insertion
    Par bran_noz dans le forum Développement
    Réponses: 5
    Dernier message: 23/12/2005, 14h38
  3. problème avec select sur onchange
    Par Kerod dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/12/2005, 14h05
  4. pb avec select sur deux champs
    Par graphicsxp dans le forum Langage SQL
    Réponses: 7
    Dernier message: 22/03/2005, 15h30
  5. select sur un champ de type LONG
    Par ppd dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2004, 18h19

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