STRQMQRY
Démarrer une requête QM
En bref
La commande STRQMQRY (Démarrer une requête QM) permet d'exécuter une requête.
STRQMQRY se lit STR
(Démarrer) + QMQRY.
Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.
Syntaxe minimale
STRQMQRY QMQRY(…)
Paramètres
-
QMQRYRequête QM obligatoire -
OUTPUTSortie -
QMFORMFormat de rapport QM -
OUTFILEFichier recevant la sortie -
OUTMBROptions pour membre de sortie -
DATETIMEDate et heure -
PAGNBRNumérotation des pages -
RDBBase de données relationnelle -
RDBCNNMTHMéthode de connexion -
USERUtilisateur -
PASSWORDMot de passe -
NAMINGConvention d'appellation -
ALWQRYDFNAdmettre infos de QRYDFN -
SETVARIndication des variables
Astuce : dans une session 5250, tapez STRQMQRY puis F4 pour
l'invite de saisie, et F1 sur un paramètre pour son aide.
Aide IBM i de la commande
Texte du F1, IBM i 7.5 en français
(bibliothèque QSYS)
Où s'exécute : Tous les environnements (*ALL)
Compatible multitâche : Non
La commande STRQMQRY (Démarrer une requête QM) permet d'exécuter une requête.
Pour utiliser cette commande, vous devez d'abord identifier la requête à traiter. Une requête est une instruction SQL unique contenu dans un objet QMQRY. L'instruction SQL peut également être extraite d'un objet QRYDFN (définition de requête) lorsque aucun objet QMQRY n'existe.
La sortie générée peut être affichée, imprimée ou stockée dans un fichier base de données.
Si l'instruction SQL de la requête ne génère pas de liste de réponses, aucun rapport ou fichier en sortie n'est créé. Cela peut se produire lorsque l'instruction SQL d'une requête est incorrecte, ou qu'elle ne figure pas dans une clause SELECT.
Si la requête contient des variables de substitution, le paramètre SETVAR peut être utilisé pour définir ces dernières. Si la fonction d'invite est activée, QM/400 invite l'utilisateur à indiquer une valeur pour toute variable non définie.
Paramètres
| Mot-clé | Description | Valeurs possibles | Remarques |
|---|---|---|---|
| QMQRY | Requête QM | Nom d'objet qualifié | Obligatoire, positionnel 1 |
| Qualificatif 1: Requête QM | Nom | ||
| Qualificatif 2: Biblio | Nom, *LIBL, *CURLIB | ||
| OUTPUT | Sortie | *, *PRINT, *OUTFILE | Facultatif, positionnel 2 |
| QMFORM | Format de rapport QM | Valeurs uniques: *SYSDFT, *QMQRY Autres valeurs: Nom d'objet qualifié |
Facultatif |
| Qualificatif 1: Format de rapport QM | Nom | ||
| Qualificatif 2: Biblio | Nom, *LIBL, *CURLIB | ||
| OUTFILE | Fichier recevant la sortie | Nom d'objet qualifié | Facultatif |
| Qualificatif 1: Fichier recevant la sortie | Nom | ||
| Qualificatif 2: Biblio | Nom, *CURLIB, *LIBL | ||
| OUTMBR | Options pour membre de sortie | Liste d'éléments | Facultatif |
| Élément 1: Membre | *FIRST | ||
| Élément 2: Remplacement ou ajout enregs | *REPLACE, *ADD | ||
| DATETIME | Date et heure | *YES, *NO | Facultatif |
| PAGNBR | Numérotation des pages | *YES, *NO | Facultatif |
| RDB | Base de données relationnelle | Nom simple, *NONE, *CURRENT | Facultatif |
| RDBCNNMTH | Méthode de connexion | *DUW, *RUW | Facultatif |
| USER | Utilisateur | Nom, *CURRENT | Facultatif |
| PASSWORD | Mot de passe | Valeur caractère, *NONE | Facultatif |
| NAMING | Convention d'appellation | *SYS, *SQL, *SAA | Facultatif |
| ALWQRYDFN | Admettre infos de QRYDFN | *NO, *YES, *ONLY | Facultatif |
| SETVAR | Indication des variables | Values (jusqu'à 50 répétitions): Liste d'éléments | Facultatif |
| Élément 1: Nom de variable | Valeur caractère | ||
| Élément 2: Valeur de variable | Valeur caractère |
Requête QM (QMQRY)
Indique la requête QM (QMQRY) à exécuter.
Ce paramètre est obligatoire.
Qualificatif 1 : Requête QM
- nom
- Indiquez le nom de la requête à exécuter.
Qualificatif 2 : Biblio
- *LIBL
- La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
- *CURLIB
- Le système effectue la recherche dans la bibliothèque en cours du travail. Si celle-ci n'est pas définie, QGPL est utilisée par défaut.
- nom
- Indiquez le nom de la bibliothèque contenant la requête.
Sortie (OUTPUT)
Indique si la sortie générée par la commande est affichée sur le poste de travail à l'origine de la commande a été lancée, imprimée avec la sortie spoule du travail ou envoyée dans un fichier base de données.
- *
- Les données extraites par la requête sont présentées selon le format de rapport indiqué. En mode interactif, elles sont ensuite transmises au poste de travail depuis lequel la commande a été lancée. En mode traitement par lots, les données sont transmises à l'imprimante que la gestion de requêtes QM/400 utilise par défaut.
- Les données extraites par la requête sont présentées selon le format QM indiqué, puis transmises à l'imprimante que la gestion de requêtes QM/400 utilise par défaut.
- *OUTFILE
- Les données extraites par la requête sont placées dans un fichier base de données (table) qui est inséré dans une collection.
Format de rapport QM (QMFORM)
Indique le format de rapport associé à la requête QM et devant être appliqué à la liste de réponses pour la présentation de la sortie imprimée ou affichée.
valeurs uniques
- *SYSDFT
- Un format de rapport par défaut est créé et utilisé pour l'impression ou l'affichage du rapport.
- *QMQRY
- La valeur définie dans le paramètre Requête QM (QMQRY) est utilisée pour rechercher le format du rapport.
Qualificatif 1 : Format de rapport QM
- nom
- Indiquez le nom du format de rapport.
Qualificatif 2 : Biblio
- *LIBL
- Le format de rapport est recherché dans la liste des bibliothèques.
- *CURLIB
- Le système effectue la recherche dans la bibliothèque en cours du travail. Si celle-ci n'est pas définie, QGPL est utilisée par défaut.
- nom
- Indiquez le nom de la bibliothèque sur laquelle doit porter la recherche.
Fichier recevant la sortie (OUTFILE)
Indique le fichier base de données recevant les données extraites par la requête. Si le fichier indiqué n'existe pas, il est créé dans la bibliothèque indiquée en tant que table d'une collection. Dans ce cas, le droit *EXCLUDE est accordé aux utilisateurs ne disposant d'aucun droit spécifique.
Qualificatif 1: Fichier recevant la sortie
- nom
- Entrez le nom du fichier base de données devant recevoir la sortie générée par la commande.
Qualificatif 2 : Biblio
- *LIBL
- La recherche porte sur toutes les bibliothèques de la liste des bibliothèques du travail jusqu'à ce que la première occurrence soit trouvée.
- *CURLIB
- Le système effectue la recherche dans la bibliothèque en cours du travail. Si celle-ci n'est pas définie, QGPL est utilisée par défaut.
- nom
- Indiquez le nom de la bibliothèque sur laquelle doit porter la recherche.
Options pour membre de sortie (OUTMBR)
Indique le membre de fichier base de données recevant la sortie.
Elément 1 : Membre
- *FIRST
- La sortie est placée dans le premier membre du fichier.
Elément 2 : Remplacement ou ajout enregs
- *REPLACE
- Les données du fichier sont effacées avant l'insertion de nouveaux enregistrements.
- *ADD
- Les nouveaux enregistrements sont ajoutés à la suite des enregistrements existants.
Date et heure (DATETIME)
Indique si la date et l'heure système sont imprimées au bas de chaque page.
- *YES
- La date et l'heure système sont imprimées au bas de chaque page.
- *NO
- La date et l'heure système ne sont pas imprimées.
Numérotation des pages (PAGNBR)
Indique si les numéros de page sont imprimés au bas de chaque page.
- *YES
- Les numéros de page sont imprimés au bas de chaque page.
- *NO
- Les numéros de page ne sont pas imprimés.
Base de données relationnelle (RDB)
Indique la base de données relationnelle utilisée lors du traitement de la commande.
- *NONE
- La base de données locale est utilisée. Si vous êtes connecté à une base de données éloignée, la connexion à la base locale est rétablie jusqu'à exécution de la commande. Si le mode de gestion de la connexion est *DUW, la connexion éloignée est laissée en sommeil.
- *CURRENT
- La base de données relationnelle utilisée est la base à laquelle vous êtes connecté lors du traitement de la commande.
Si le mode de gestion de connexion est *RUW, la valeur *OUTFILE ne peut pas être affectée au paramètre OUTPUT lorsque l'utilisateur est connecté à une base de données éloignée.
Avec le mode de gestion de connexion *DUW, si l'utilisateur est connecté à une base de données éloignée et que OUTPUT(*OUTFILE) est indiqué, la connexion locale est utilisée pour le traitement de *OUTFILE et la connexion éloignée est rétablie une fois la commande STRQMQRY exécutée.
- nom
- Indiquez le nom de la base de données relationnelle à utiliser. Cette base doit être définie dans le répertoire des bases de données relationnelles.
Avec le mode de gestion de connexion *RUW, si la base de données relationnelle indiquée est une base éloignée et que OUTPUT(*OUFILE) est indiqué, la connexion locale est rétablie pour le traitement de *OUTFILE et reste active une fois la commande STRQMQRY exécutée.
Avec le mode de gestion de connexion *DUW, si vous utilisez une base de données relationnelle et que OUTPUT(*OUTFILE) est indiqué, la connexion locale est utilisée pour le traitement de *OUTFILE puis la connexion éloignée est rétablie une fois la commande STRQMQRY exécutée.
Méthode de connexion (RDBCNNMTH)
Indique la méthode de connexion à utiliser.
- *DUW
- Les connexions à plusieurs bases de données relationnelles sont admises. L'exécution consécutive d'instructions CONNECT sur des bases de données relationnelles supplémentaires ne provoque pas l'arrêt des connexions précédentes.
- *RUW
- Une seule connexion à une base de données relationnelle peut être effectuée. L'exécution consécutive d'instructions CONNECT provoque l'arrêt des connexions précédentes avant l'établissement d'une nouvelle connexion.
Utilisateur (USER)
Indique le nom d'utilisateur envoyé au système éloigné lors du démarrage de la conversation.
- *CURRENT
- Le nom d'utilisateur associé au travail en cours est utilisé.
- nom
- Indiquez le nom d'utilisateur utilisé pour le travail demandeur d'application.
Mot de passe (PASSWORD)
Indique le mot de passe à utiliser sur le système éloigné.
- *NONE
- Aucun mot de passe n'est envoyé. Le nom d'utilisateur indiqué au paramètre USER est incorrect si cette valeur est précisée.
- valeur-alphanumérique
- Indiquez le mot de passe associé au nom d'utilisateur indiqué au paramètre USER.
Convention d'appellation (NAMING)
Indique la convention d'appellation utilisée pour les objets.
- *SYS
- La convention d'appellation système (nom-base-de-données/nom-objet) est utilisée.
- *SQL
- La convention d'appellation SQL (nom-base-de-données.nom-objet) est utilisée. Lorsque NAMING(*SQL) est indiqué, la valeur *LIBL n'est pas admise et ne peut pas être précisée pour localiser l'un quelconque des objets indiqués dans d'autres paramètres de cette commande.
- *SAA
- La convention d'appellation SQL (nom-base-de-données.nom-objet) est utilisée. Lorsque NAMING(*SAA) est indiqué, la valeur *LIBL n'est pas admise et ne peut pas être précisée pour localiser l'un quelconque des objets indiqués dans d'autres paramètres de cette commande.
Admettre infos de QRYDFN (ALWQRYDFN)
Indique si les informations relatives à la requête ou au format sont extraites d'un objet QRYDFN (définition d'analyse) lorsque aucun objet QMQRY (requête QM) ou QMFORM (format QM) ne peut être localisé à l'aide du nom d'objet indiqué. Toutes les informations ainsi dérivées sont supprimées une fois la commande exécutée. Aucun objet QM n'est créé.
- *NO
- Aucune information n'est extraite d'un objet QRYDFN.
- *YES
- Les informations sont extraites d'un objet QRYDFN lorsque le nom d'objet QMQRY ou QMFORM n'est pas trouvé.
- *ONLY
- Les informations sont extraites uniquement d'un objet QRYDFN. Les objets QM sont ignorés.
Indication des variables (SETVAR)
Indique jusqu'à 50 variables, que la gestion de requêtes QM/400 définit avant l'exécution de la requête.
Elément 1 : Nom de variable
- valeur-alphanumérique
- Indiquez un nom de variable de 1 à 30 caractères. Comme les minuscules sont converties en majuscules lorsque les variables sont transmises au programme de traitement de commande, ce paramètre ne peut pas être utilisé pour définir des valeurs de variable contenant à la fois des majuscules et des minuscules.
Elément 2 : Valeur de variable
- valeur-alphanumérique
- Indiquez une valeur de variable de 0 à 55 caractères. Si vous placez une valeur entre apostrophes, les apostrophes sont enlevées et les apostrophes doublées sont remplacées par une seule apostrophe lorsque la valeur est transmise au programme de traitement de commande.
Exemples
Exemple 1 : Affichage du résultat de la requête
STRQMQRY QMQRY(MYLIB/MYQRY) QMFORM(FORM1)
Cette commande permet d'exécuter la requête de gestion de requête MYQRY située dans la bibliothèque MYLIB. Le système recherche dans la liste de bibliothèques le formulaire FORM1, qui est utilisé pour le résultat envoyé à l'affichage.
Exemple 2 : Extraction d'informations à partir de QMQRY ou de QRYDFN
STRQMQRY QMQRY(MYLIB/MYQRY) QMFORM(FORM1) ALWQRYDFN(*YES)
Cette commande permet d'exécuter la requête de gestion de requête (QMQRY) MYQRY située dans la bibliothèque MYLIB. S'il n'existe pas d'objet QMQRY MYQRY dans la bibliothèque MYLIB, les données sont extraites de la définition de requête (QRYDFN) MYQRY située dans la bibliothèque MYLIB. Le système recherche dans la liste de bibliothèques le formulaire de gestion de requête FORM1 dont les informations servent à mettre en forme le résultat. S'il n'existe pas d'objet QMFORM FORM1 dans la liste de bibliothèques, le système recherche QRYDFN FORM1 dans la liste de bibliothèques et ses informations sont utilisées pour mettre en forme le résultat qui s'affiche à l'écran.
Exemple 3 : Impression du résultat de la requête
STRQMQRY QMQRY(MYLIB/QUERY1) OUTPUT(*PRINT)
Cette commande permet d'exécuter la requête QUERY1 située dans la bibliothèque MYLIB. Le rapport est mis en forme et imprimé sur l'imprimante indiquée dans le fichier imprimante associé à la session de requête.
Exemple 4 : Envoi du résultat dans un fichier existant
STRQMQRY QMQRY(*CURLIB/MYQRY)
OUTPUT(*OUTFILE) OUTFILE(MYTAB) OUTMBR(*FIRST *ADD)
Cette commande permet d'exécuter la requête appelée MYQRY, située dans la bibliothèque en cours du travail de l'utilisateur. Les enregistrements de données sélectionnés sont ajoutés à la table créée au préalable et appelée MYTAB dans la collecte MYCOL.
Exemple 5 : Exécution d'une requête contenant des variables de substitution
STRQMQRY QMQRY(MYQUERY)
SETVAR((VAR1 'sélectionner * depuis mytable')
(VAR2 'où salaire > 15000'))
Cette commande exécute la requête MYQUERY, qui contient uniquement les variables de substitution, &VAR1 et &VAR2. Ces deux variables contiennent l'instruction SQL dans son ensemble.
Exemple 6 : Modification d'une variable
STRQMQRY QMQRY(QRYNAME) SETVAR((LASTNAME '''Smith'''))
Cette commande exécute la requête QRYNAME, qui définit la variable LASTNAME sur la valeur 'Smith'.
Messages d'erreur
Messages *ESCAPE
- QWM2701
- La commande &1 a échoué.
- QWM2703
- La commande &1 a été interrompue.
- QWM2707
- *LIBL non admis avec la convention d'appellation SQL.
- QWM2709
- Utilisateur ou mot de passe incompatible avec valeur BD relationnelle.
- QWM2710
- Mot de passe *NONE admis uniquement avec utilisateur *CURRENT.
- QWM2712
- Caractère incorrect dans le nom d'utilisateur.
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.