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

WinDev Discussion :

[WD2024] Requêtes paramétrées


Sujet :

WinDev

  1. #1
    Membre chevronné Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 768
    Par défaut [WD2024] Requêtes paramétrées
    Bonjour à tous,

    Aujourd'hui je me pose la question si je n'est pas une autre façon de faire avec les requêtes paramétrées ...

    ça fait des lustres que je fais comme ça, mais ça ne me semble pas du plus bel effet (on ne se moque pas )

    Soit, par exemple deux champs de saisie pour de la recherche SAI_Nom / SAI_Prenom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    vNom est un variant 
    vPrenom est un variant 
     
    SI SAI_Nom <> "" alors 
        vNom  = SAI_NOm
    FIN 
     
    SI SAI_Prenom <> "" alors 
        vNom  = SAI_Prenom 
    FIN 
     
    HExécuteRequête(REQ_Membres_Liste,hRequêteDéfaut,vNom  ,vPrenom )
    Je passe par des variants pour avoir le "null" si la requête est vide et donc ne pas en tenir compte dans la selection

    Il y aurait un moyen plus élégant et plus simple en cas de nombreux paramètres ?

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 419
    Par défaut
    Hello,

    C'est une méthode comme une autre

    Pour ma part j'utilise la construction de requête dynamique cad concaténation de chaînes suivant les paramètres.

    Tu pourrais également utiliser une variable de type 'Requête SQL' ce qui fait que lors de l'appel si un paramètre n'est pas renseigné, il n'est pas pris en compte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sSQL est une Requête SQL  = [
    SELECT * FROM Clients WHERE Nom = {paramNom} AND Prenom = {paramPrenom}
    ]
     
    sSQL.paramNom = "DUPOND"
    // le paramètre Prenom n'est pas initialisée donc la requête s'exécutera sans ce critère
     
    SI HExécuteRequête(sSQL, hRequeteDefaut) ALORS
    ..
    FIN

  3. #3
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2017
    Messages
    3 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2017
    Messages : 3 058
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Concernant la gestion du Null, il y a une case à cocher "Null si vide" au niveau des champs de saisie.
    Le code devient alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    REQ_MaRequête.pPrénom=SAI_Prénom
    REQ_MaRequête.pNom=SAI_Nom
     
    HExécuteRequête(REQ_MaRequête)

  4. #4
    Membre chevronné Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 768
    Par défaut
    Tu pourrais également utiliser une variable de type 'Requête SQL' ce qui fait que lors de l'appel si un paramètre n'est pas renseigné, il n'est pas pris en compte.
    Dans mon cas je ne sais pas à l'avance si le champ devra être renseigné, mais effectivement ça peut être une solution également

    Concernant la gestion du Null, il y a une case à cocher "Null si vide" au niveau des champs de saisie.
    .. .j'ai dû passer à côté depuis des années ... je vais me dire que c'est une des 2024 nouveautés de la 2024

    Merci pour vos retours

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 262
    Par défaut
    je vais me dire que c'est une des 2024 nouveautés de la 2024
    oui, on va dire ça, si ça te fait plaisir.

  6. #6
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2017
    Messages
    3 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2017
    Messages : 3 058
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par wd_newbie Voir le message
    je vais me dire que c'est une des 2024 nouveautés de la 2024
    On va dire ça comme ça, avec la gestion du Null. Dans le brouillard, ça peut passer.

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

Discussions similaires

  1. requte avec points de suspension
    Par Luther13 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/12/2005, 16h56
  2. base de registre : paramtres de valeurs !
    Par hiko-seijuro dans le forum MFC
    Réponses: 2
    Dernier message: 25/09/2005, 13h56
  3. [Requete] Intersection de requte
    Par KorHeve dans le forum Langage SQL
    Réponses: 5
    Dernier message: 11/04/2005, 17h45
  4. Requte
    Par abdallahi dans le forum Access
    Réponses: 6
    Dernier message: 04/01/2005, 15h06
  5. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 13h51

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