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 :

Requête avec en critère une variable globale


Sujet :

WinDev

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 412
    Points : 303
    Points
    303
    Par défaut Requête avec en critère une variable globale
    Salut à tous,
    J'essaye désespérément de remplir un champ table via une requête.
    Cette requête, je la crée en faisant fichier/nouveau/requete et je choisis SQL ou requête de sélection; et je n'arrive pas à intégrer une variable globale.

    Est-ce que la solution est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM formulaire WHERE lot="'"+sNumLot+"'"
    Sachant que Lot est une chaine.
    Si c'est la bonne solution alors, je vais regarder encore, j'ai dû faire une bêtise.
    http://mael-decoster.fr
    Développeur indépendant d'applications web
    http://www.easy-media.fr

  2. #2
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Bonjour,
    regarde dans l'aide, la gestion des paramètres de requêtes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM formulaire WHERE lot='{sNumLot}'
    Cordialement,
    Christophe Charron

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Tu peux aussi passer en paramètre lma variable a la requete.

    SELECT * FROM T where R={param1}

    HExecuteRequete(Marequete,MaVarGlob)
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 412
    Points : 303
    Points
    303
    Par défaut
    Bonjour,
    Merci pour vos réponses.
    J'ai ecouté ce que vous m'avez proposé et je me heurte au problème suivant :
    j'ai donc créé un champ table qui parcourt automatiquement mon fichier table. J'ai ajouté, grâce à l'assistant, une requête qui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM formulaire WHERE lot='{param1}'
    Etant donné que cette table est générée sans aucune ligne de code, je ne sais pas comment lui dire que param1 doit etre égal à sNumLot puisque je n'ai pas de HExecuteRequete(...)

    Merci
    http://mael-decoster.fr
    Développeur indépendant d'applications web
    http://www.easy-media.fr

  5. #5
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Bonjour,
    Citation Envoyé par mael94420
    Bonjour,
    Merci pour vos réponse,
    J'ai ecouté ce que vous m'avez proposé et je me eurte au probleme suivant :
    J'ai donc réé un champ table qui parcour automatiquement mon fichier table.J'ai donc ajouté grace à l'assistant une requete qui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM formulaire WHERE lot='{param1}'
    Etant donné que cette table estgénéré sans auune ligne de code, je ne sais pas comment lui dire que param1 doit etre egal à sNumLot puisque je n'est pas de HExecuteRequete(...)

    Merci
    Regarde dans le code d'initialisation de la table...
    Cordialement,
    Christophe Charron

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 412
    Points : 303
    Points
    303
    Par défaut
    mais il n'y a pas de code, j'ai utilisé l'assistant pour créé la table
    http://mael-decoster.fr
    Développeur indépendant d'applications web
    http://www.easy-media.fr

  7. #7
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Beh tu executes comment ta requete ? Avec HExecuteRequete non ?
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 412
    Points : 303
    Points
    303
    Par défaut
    non pas du tou, l'assistant windev nous propose de remplir le champs table a laide d'une requete mais ne crée pas de code dumoins, pas de code visible.
    http://mael-decoster.fr
    Développeur indépendant d'applications web
    http://www.easy-media.fr

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Points : 130
    Points
    130
    Par défaut
    Il s'agit d'une requete "intégrée" en somme non ?

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Points : 130
    Points
    130
    Par défaut
    Et sinon par programmation tu ne veux pas essayer car là heu...
    Ce que tu sembles vouloir faire pourrais être fait en 2 temps 3 mouvements par cette autre méthode, à l'initialisation de ton champs table...

    Regarde du côté de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FichierVersTableMémoire(<Nom de la table>, <Nom du fichier>)
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ConstruitTableFichier(<Nom de la table>, <Nom du fichier> [, <Options>])

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 412
    Points : 303
    Points
    303
    Par défaut
    j'entend bien, en fait, je n'arrive pas a pacer en paramtre une variable global dans ma requete.
    http://mael-decoster.fr
    Développeur indépendant d'applications web
    http://www.easy-media.fr

  12. #12
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Tu as essayé ceci :

    Citation Envoyé par Christophe Charron
    Bonjour,
    regarde dans l'aide, la gestion des paramètres de requêtes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM formulaire WHERE lot='{sNumLot}'
    Erreurs de compile de resultat ?
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  13. #13
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Bonjour,
    soit une requête "test_01" ainsi écrite à la mano :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select be_0001_00 from be where be_cleunik={param_be}
    soit un traitement écrit à la mano dans un petit bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    test_01.param_be=1
    HExécuteRequête(test_01)
    POUR TOUT test_01
    	// traitement
    FIN
    Ca marche ou ça ne marche pas ?
    Cordialement,
    Christophe Charron

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Points : 47
    Points
    47
    Par défaut
    Bonjour,
    avant toute chose lorsque tu fait une requete SQL utilise du code SQL et du W-Langage, les variables de ton code ne peuvent être visible dans une requête. Pour que ce soit possible il faut les "passer en parametre".

    ensuite la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM formulaire WHERE lot='{sNumLot}'
    n'effectuera pas ta demande.
    les enregistrement retourner par ta requete seront ceux dont la valeur lot est égale à la valeur {sNumLot} et non la valeur contenu dans la variable passé en parametre.

    le bon code est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM formulaire WHERE lot={sNumLot}
    Dans les explications que tu donnes, tu n'utilises pas de requetes integre car ta requete n'est pas propre a ta table mais propre au projet. (je sais, c'est du pinallage)
    Le remplissage de ta table est basé sur l'execution de ta requete donc avant d'execute ta reuqte il faut la parametrer.
    voici deux type de code a mettre dans le traitement d'initialisation de ta table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MaSource.NomParametre = sNumLot
    HExecuteRequete(NomRequete)
    TableAffiche(MoiMeme)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HExecuteRequete(NomRequete,hRequteDefaut,sNumLot)
    TableAffiche(MoiMeme)
    il est a note que MaSource peut etre modifier par le nom de ta requete et que MoiMeme peut ete modifier par le nom de ta table.

    Attention ce code ne fonctionne que dans le code d'initialisation de ta table, pour le mettre a un autre endroit il faut modifier les termes MaSource et MoiMeme (si le code ne se trouve pas dans un traitement de la table ^^)

Discussions similaires

  1. Requête avec adjonction d'une variable
    Par almoha dans le forum Requêtes
    Réponses: 0
    Dernier message: 29/08/2010, 14h27
  2. Requête avec un critère appartenant à une liste déroulante
    Par liloudris dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 16/09/2009, 05h14
  3. Réponses: 3
    Dernier message: 12/03/2009, 17h38
  4. problème avec une variable globale(SDL)
    Par rayman77 dans le forum C
    Réponses: 1
    Dernier message: 20/02/2009, 13h20
  5. mise à jour d'un treeCtrl avec une variable globale
    Par lajuve dans le forum wxPython
    Réponses: 6
    Dernier message: 20/10/2008, 09h45

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