- 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
Utilisation d'une requête paramétrée
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
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 : - soit directement dans la fonction WLangage HExécuteRequête.
- soit en utilisant la notation <Nom de la requête>.<Nom du paramètre>, puis en utilisant la fonction HExécuteRequê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)
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'utilisateur | Option "NULL si vide" | Code SQL exécuté |
---|
Aucune valeur | Option cochée | SELECT NomDesRubriques FROM NomDesFichiers
| Aucune valeur | Option décochée | SELECT NomDesRubriques FROM NomDesFichiers WHERE Rubrique = ' '
| Une valeur est saisie | Option cochée ou décochée | SELECT NomDesRubriques FROM NomDesFichiers WHERE Rubrique = 'ValeurSaisie'
|
Documentation également disponible pour…
|
|
|
|