DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Editeurs / Editeur de requêtes / Requête paramétrée
  • Présentation
  • Utilisation d'une requête paramétrée dans un champ Table, Zone répétée, Liste ou Combo
  • Utilisation d'une requête paramétrée dans un état
  • Principe
  • Exemple
  • Utilisation d'une requête paramétrée par programmation
  • Principe
  • Exemple
  • Astuce
  • Exemple
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Utilisation d'une requête paramétrée
Présentation
Une requête paramétrée peut être utilisée :
  • Comme source de données d'un champ (Table, Liste, Combo, Zone répétée, ...).
  • Comme source de données d'un état.
  • Par programmation.
Utilisation d'une requête paramétrée dans un champ Table, Zone répétée, Liste ou Combo
Lorsqu'un champ Table fichier est lié à une requête paramétrée (intégrée ou non), il est nécessaire de passer des paramètres à la requête avant de l'exécuter.
Si ces paramètres ne sont pas spécifiés avant la première exécution de la requête, la requête ne sera pas exécutée et le champ Table restera vide.
Pour passer les paramètres à la requête, il est possible d'utiliser :
  • soit la notation suivante :
    <Nom Requête>.<Nom Paramètre1> = xxx
    <Nom Requête>.<Nom Paramètre2> = xxx
    <Nom Requête>.<Nom Paramètre3> = xxx
    HExécuteRequête(<Nom Requête>)

    Dans ce cas, la requête est automatiquement exécutée lors de l'initialisation du champ Table.
  • soit la fonction HExécuteRequête en spécifiant les paramètres dans la fonction.
Cas particulier : il est possible d'initialiser les paramètres de la requête directement dans le code d'initialisation du champ. Dans ce cas, il n'est pas nécessaire d'utiliser la fonction HExécuteRequête pour calculer le résultat de la requête. La syntaxe est alors la suivante :
MaSource.<Nom Paramètre1> = xxx
MaSource.<Nom Paramètre2> = xxx
MaSource.<Nom Paramètre3> = xxx
Pour plus de détails, consultez Requêtes et champs Table fichier.
Utilisation d'une requête paramétrée dans un état

Principe

Pour utiliser un état basé sur une requête paramétrée, il est nécessaire d'exécuter la requête avant d'ouvrir l'état. La requête peut être exécutée avec la fonction iInitRequêteEtat. Cette fonction permet d'exécuter la requête et d'indiquer les paramètres de cette requête. Cette fonction peut être appelée :
  • soit dans le code d'initialisation de l'état,
  • soit avant la fonction iImprimeEtat.

Exemple

La fenêtre FEN_ClientFiche permet de parcourir les caractéristiques des clients. Pour chaque client, l'utilisateur peut cliquer sur le bouton BTN_ImprimeCommande pour imprimer l'état ETAT_EtatCdeClient. Cet état est associé à la requête REQ_CdeClient qui sélectionne les commandes passées par un client donné.
Le code suivant permet d'exécuter la requête REQ_CdeClient selon le client en cours et d'imprimer l'état :
// -- Traitement de clic du bouton BTN_ImprimeCommande
// Exécution de la requête selon le client en cours
iInitRequêteEtat(ETAT_EtatCdeClient, NumClient)
// Impression de l'état
iImprimeEtat(ETAT_EtatCdeClient)
Utilisation d'une requête paramétrée par programmation

Principe

Lors de l'exécution de la requête paramétrée par programmation, les paramètres peuvent être passés :
Pour plus de détails sur le passage de paramètres à la requête, consultez Deux méthodes pour passer des paramètres à une requête.

Exemple

Pour afficher la liste des commandes de l'année 2018 :
// Exécution de la requête
HExécuteRequête(REQ_ParamCommande, hRequêteDéfaut, 2018)
// Code similaire :
// REQ_ParamCommande.Année = 2018
// HExécuteRequête(REQ_ParamCommande, hRequêteDefaut)
Astuce
Lorsqu'un paramètre de requête est initialisé avec la valeur NULL, la condition associée à ce paramètre est ignorée lors de l'exécution de la requête.
A savoir : Si la valeur du paramètre provient d'un champ de saisie, l'option "NULL si vide" (onglet "Détail" de la description du champ) permet d'affecter directement la valeur NULL si le champ n'est pas renseigné.

Exemple

Le code SQL exécuté est :
SELECT NomDesRubriques
FROM NomDesFichiers
WHERE Rubrique = {Param1}
Pour cet exemple, le tableau ci-dessous décrit l'utilisation de l'option "NULL si vide" :
Valeur saisie par l'utilisateurOption "NULL si vide"Code SQL exécuté
Aucune valeurOption cochée SELECT NomDesRubriques
FROM NomDesFichiers
Aucune valeurOption décochée SELECT NomDesRubriques
FROM NomDesFichiers
WHERE Rubrique = ' '
Une valeur est saisieOption cochée ou décochée SELECT NomDesRubriques
FROM NomDesFichiers
WHERE Rubrique = 'ValeurSaisie'
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale