PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Requête SQL avec une sélection d'enregistrements du fichier de données
  • Requête SQL avec un filtre en programmation
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Pour effectuer un filtre (ou une sélection) d'enregistrements provenant d'un fichier de données, il est possible d'effectuer une boucle de parcours et d'utiliser la fonction HFiltre.
Un moyen plus efficace pour effectuer ce filtre (ou sélection) consiste à utiliser une requête SQL.
Nous allons voir comment effectuer un filtre en utilisant :
Requête SQL avec une sélection d'enregistrements du fichier de données
Cette requête permet de sélectionner les enregistrements d'un fichier de données correspondant à une condition de sélection.
Dans cet exemple, nous réalisons la sélection des enregistrements du fichier CLIENT dont la ville est égale à un paramètre.
Les différentes étapes pour créer cette requête SQL avec un filtre sont les suivantes :
  1. Sélectionnez l'option "Fichier .. Nouveau .. Requête". L'assistant de création d'une requête se lance.Cliquez sur Nouveau parmi les boutons d'accès rapide.
    • Dans la roue qui s'affiche, cliquez sur "Requêtes". Dans la fenêtre qui s'affiche, cliquez sur "Requêtes".
    • L'assistant de création d'une requête se lance.
  2. Sélectionnez l'option "Sélectionner (SELECT)" et validez.Choisissez de créer une requête de sélection (option "Sélection (SELECT)").
    Assistant de création de requêtes

    Passez à l'étape suivante de l'assistant.
  3. La fenêtre de description de la requête s'affiche.
  4. Donnez un nom et un libellé à la requête :
    Nom et libellé de la requête
  5. Dans la zone de gauche de la fenêtre de description, choisissez les rubriques du fichier de données à manipuler (dans notre exemple, le fichier CLIENT et les rubriques NomClient, Société et Ville).
  6. Double-cliquez sur les noms des rubriques pour les ajouter dans la liste des rubriques de la requête :
    Sélection des rubriques
  7. Pour effectuer le filtre (sélection), dans la partie droite de l'éditeur, cliquez sur le bouton "Condition de sélection".
    Condition de sélection
  8. Cliquez sur "Nouvelle condition...".
  9. Dans la fenêtre qui s'affiche :
    • Sélectionnez l'opération ("est égal" dans notre exemple).
    • Sélectionnez "Paramètre" pour pouvoir passer à la requête une valeur saisie par l'utilisateur.
    • Donnez un nom au paramètre.
      Caractéristiques de la condition de sélection
  10. Validez. La fenêtre de description de la requête est mise à jour :
    Description de la requête
  11. Validez la fenêtre de description de la requête. La requête apparaît sous l'éditeur :
    Affichage de la requête sous l'éditeur
  12. Enregistrez la requête (CTRL S).
  13. Visualisez le code SQL en appuyant sur la touche F2 :
    Code SQL de la requête
  14. Testez la requête (GO dans les boutons d'accès rapide).
  15. La requête peut être exécutée dans le programme à l'aide de la fonction HExécuteRequête. Il est nécessaire d'initialiser le(s) paramètre(s) attendu(s) dans le code.
  16. Exemple de code d'appel depuis le clic d'un bouton :
    REQ_Filtre.ParamVille = "Paris"
    HExécuteRequête(REQ_Filtre)
Requête SQL avec un filtre en programmation
Les requêtes SQL peuvent être écrites directement par programmation dans le code WLangage. Pour cela, il faut :
  1. Créer une variable de type Source de données pour représenter la requête en exécution.
  2. Créer une variable de type chaîne de caractères pour contenir le code SQL de la requête et écrire le code SQL dans cette variable.
  3. Exécuter la requête SQL à l'aide de la fonction HExécuteRequêteSQL.
  4. Parcourir le résultat à l'aide des fonctions HLITXXX.
Exemple de code :
Src1 est une Source de Données
sCodeSQL est une chaîne

// Sélection de produits dont le prix est supérieur à ...
sCodeSQL = [
SELECT PRODUIT.Reference AS Reference,
PRODUIT.Libprod AS Libprod,
PRODUIT.Prixht AS Prixht
FROM PRODUIT
WHERE PRODUIT.Prixht > %1
]

moPrix est un monétaire
moPrix = SAI_PRIX // valeur provenant d'un champ de saisie

sCodeSQL = ChaîneConstruit(sCodeSQL, moPrix)

HExécuteRequêteSQL(Src1, hRequêteDéfaut, sCodeSQL)
POUR TOUT Src1
Trace(Src1.Reference , Src1.Libprod, Src1.Prixht)

FIN
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire