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 :

[Débutant] Paramètre d'une requête [WD9]


Sujet :

WinDev

  1. #1
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut [Débutant] Paramètre d'une requête
    Bonjour,

    J'ai commencé une appli Windev Mobile, J'ai crée 2 Tables et 2 fenêtres.

    Dans la première fenêtre j'affiche la liste des 'RDV' et dans la deuxième les 'EtatLieux' Correspondants.

    Mon but : faire passer le contenu du champ ID actuel de la table RDV à la fenêtre FRM_EtatLieux ou j'affiche le contenu des EtatLieux selon ce fameux champ IDRDV.

    Pour ouvrir la fenêtre étatlieux j'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ouvre(FRM_EtatLieux, RDV.IDRDV)
    puis dans la fenêtre FRM_Etatlieux j'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Déclarations globales : PROCEDURE FRM_EtatLieux(Param_IDRDV)
    
    Initialisation :
    REQ_SELECT_EtatLieux.Paramètre1 = Param_IDRDV
    Et le code SQL de la requète :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT	EtatLieux.IDEtatLieux,
    		EtatLieux.IDRDV,
    		EtatLieux.NO_LOT,
    		EtatLieux.Piece,
    		EtatLieux.Element,
    		EtatLieux.Qte,
    		EtatLieux.Etat
    FROM	EtatLieux
    WHERE EtatLieux.IDRDV = {Paramètre1}
    lorsque j'ouvre la première fois la fenètre ca marche mais avec la valeur par défaut de paramètre1.

    Si j'essaye de réouvrir ça plante. Je pense que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REQ_SELECT_EtatLieux.Paramètre1 = Param_IDRDV
    n'a pas d'effet.

    Pouvez vous me dire si c'est celà ?

    Merci


    Edit : voici le message d'erreur :

    Erreur à la ligne 9 du traitement Initialisation de Table_REQ_SELECT_EtatLieux.
    La rubrique Hyper File REQ_SELECT_EtatLieux.Paramètre1 est inconnue.
    Il n'existe pas de rubrique <Paramètre1> dans le fichier <REQ_SELECT_EtatLieux>.

    Attention le .NET sur PDA peut causer des chutes de cheveux

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Tu as vérifié que le paramètre est bien passé et que Param_IDRDV a bien la valeur voulue ?
    Tu as tracé le projet pour voir l'évolution des variables ?

  3. #3
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Citation Envoyé par Guardian
    Tu as vérifié que le paramètre est bien passé et que Param_IDRDV a bien la valeur voulue ?
    Tu as tracé le projet pour voir l'évolution des variables ?
    Aie, je vais deja avoir besoin d'aide sur tes réponses

    Edit :

    Oui, la variable passe bien d'une fenêtre à l'autre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    REQ_SELECT_EtatLieux.paramètre1 = Param_IDRDV
    Info(Param_IDRDV);
    Avec ce code j'ai bien une boite de dialogue avec le bon chiffre lors de la première ouverture. Par contre la requete SQL n'a pas pris en compte ce chiffre. (mais le paramètre semble bien avoir changé en mode pas à pas)

    A la deuxième ouverture : Même message que en haut.

    Edit2 : J'ai mis '2' comme valeur de test au 'Paramètre1' et il continue de m'afficher à l'execution les enregistrements ayant comme IDRDV '1'.
    Idem après avoir affecté 4 à REQ_SELECT_EtatLieux.paramètre1.

    Attention le .NET sur PDA peut causer des chutes de cheveux

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Citation Envoyé par Harry
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    REQ_SELECT_EtatLieux.paramètre1 = Param_IDRDV
    Info(Param_IDRDV);
    et ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    REQ_SELECT_EtatLieux.paramètre1 = Param_IDRDV
    Info(REQ_SELECT_EtatLieux.paramètre1)
    donne quoi ?

    J'avoue ne pas saisir la nécessité du "REQ_SELECT_EtatLieux" dans l'attrobution de Param_IDRDV à paramètre1 ?

    paramètre1 est déclaré ? Comme quoi ?

  5. #5
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Ça donne bien la valeur renvoyé !

    Par contre j'ai remarqué un truc : le datagrid est déjà affiché au moment ou la boite de dialogue s'affiche. Peut être qu'il faut réexecuter la requête et reremplir le dataset (aie, ya pas de dataset... mais comment on fait avec windev ? )

    Pour la déclaration : je ne l'ai pas déclaré vu que en le rajoutant dans le SQL il c'est rajouté dans la liste des paramètres de la requête. Donc je suppose qu'il est auto déclaré par windev. De plus le paramètre est proposé par l'auto-complétion de code donc je ne peux que supposer que ce que j'ai fait est juste.

    N'hésite pas à me dire si je m'y prend mal, c'est pour ça que j'ai précisé newbe dans le sujet !

    Attention le .NET sur PDA peut causer des chutes de cheveux

  6. #6
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Initialisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    REQ_SELECT_EtatLieux.paramètre1 = Param_IDRDV
    //Info(REQ_SELECT_EtatLieux.Paramètre1);
    TableAffiche(Table_REQ_SELECT_EtatLieux);
    Ca marche ! Fallait juste rafraichir la 'Table'.

    Mais j'ai toujours l'erreur fatale lorsque j'essaye de fermer puis de réouvrir la fenêtre :

    Erreur à la ligne 9 du traitement Initialisation de Table_REQ_SELECT_EtatLieux.
    La rubrique Hyper File REQ_SELECT_EtatLieux.Paramètre1 est inconnue.
    Il n'existe pas de rubrique <Paramètre1> dans le fichier <REQ_SELECT_EtatLieux>.


    **********************************************

    Informations techniques

    Projet : HeliosPPC

    Dump de l'erreur du module <WD90VM.DLL> <9.01Etc>.

    - Appel WL :
    Traitement de <FRM_EtatLieux.Table_REQ_SELECT_EtatLieux>, ligne <9>, thread <0>

    - Niveau : erreur fatale (EL_FATAL)

    - Code erreur : 1022

    - Code erreur WD55 : 202

    - Pas de code d'erreur système

    - Pas de message d'erreur système

    - Que s'est-il passé ?
    La rubrique Hyper File REQ_SELECT_EtatLieux.Paramètre1 est inconnue.
    Il n'existe pas de rubrique <Paramètre1> dans le fichier <REQ_SELECT_EtatLieux>.

    - Infos de debug :
    iehf=27001
    Récupération d'un ItemData à partir d'un fichier connu

    - Infos attachées :
    EIT_LOGICALTABLENAME : <REQ_SELECT_EtatLieux>
    EIT_DATEHEURE : 11/07/2006 09:13:02
    EIT_PILEWL :
    Initialisation de Table_REQ_SELECT_EtatLieux (FRM_EtatLieux.Table_REQ_SELECT_EtatLieux), ligne 9
    Clic sur Btn_Etatlieux (Menu.Btn_Etatlieux), ligne 1

    - Identifiant dans le .err : 1022

    Attention le .NET sur PDA peut causer des chutes de cheveux

  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
    C'est quoi le code de la ligne 9 ?
    " 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 expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE EtatLieux.IDRDV = {paramètre1}
    Code SQL qui fonctionne lors de la première ouverture de la fenêtre.
    A la deuxième on dirais que le paramètre n'est plus pris en compte.

    Attention le .NET sur PDA peut causer des chutes de cheveux

  9. #9
    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
    C'est ce code que tu as dans l'initialisation de ta table "Table_REQ_SELECT_EtatLieux" à la ligne 9 ?

    Pourrais-tu si le code n'est pas trop immense mettre tout le code de l'initialisation de cette table ?
    " 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 ]

  10. #10
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    C'est en fait le code SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT EtatLieux.IDEtatLieux AS IDEtatLieux,
    EtatLieux.IDRDV AS IDRDV,
    EtatLieux.NO_LOT AS NO_LOT,
    EtatLieux.Piece AS Piece,
    EtatLieux.Element AS Element,
    EtatLieux.Qte AS Qte,
    EtatLieux.Etat AS Etat
     FROM EtatLieux
    WHERE EtatLieux.IDRDV = {paramètre1}
    Le reste c'est sur la Fiche (fenêtre) :

    Code declarations globales : Sélectionner tout - Visualiser dans une fenêtre à part
    PROCEDURE FRM_EtatLieux(Param_IDRDV)

    Code initialisation : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    REQ_SELECT_EtatLieux.paramètre1 = Param_IDRDV
    TableAffiche(Table_REQ_SELECT_EtatLieux);

    Attention le .NET sur PDA peut causer des chutes de cheveux

  11. #11
    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
    C'est une table fichier que tu utilises c'est bien cela ?

    Pour le moment,je sais pas si ca t'aide :

    Il est possible de forcer la ré-exécution de la requête avec la fonctionTableAffiche (ouListeAffiche pour une liste)en utilisant la constante taRéExécuteRequête .
    " 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 ]

  12. #12
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Citation Envoyé par hegros
    C'est une table fichier que tu utilises c'est bien cela ?

    Pour le moment,je sais pas si ca t'aide :
    Table fichier ? C'est une bdd hyperfile.

    Attention le .NET sur PDA peut causer des chutes de cheveux

  13. #13
    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
    Citation Envoyé par Harry
    Table fichier ? C'est une bdd hyperfile.
    Dans la description de ta table dans l'onglet "liaison" tu as une liaison avec un fichier de tona analyse ?
    " 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 ]

  14. #14
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Je crois avoir trouvé :

    J'ai été en debug et decouvert que ça bloquait sur l'initialisation de la requète (morceau de code inaccessible à partir de l'interface normale ?) au niveau de la seule ligne de code qu'il y avais alors j'ai péché : je l'ai mis en commentaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Le champ utilise une requête paramétrée pour afficher ses données.
    // Les paramètres de cette requête doivent être définis avant ou lors de l'initialisation du champ.
    // La requête sera exécutée automatiquement si au moins un paramètre a été défini.
    //
    // Pour plus d'informations, veuillez consulter l'aide :
    // Requête paramétrée, Utilisation dans une table, une liste ou une combo
    //
    // Paramètres de la requête 'REQ_SELECT_EtatLieux'
    //MaSource.Paramètre1 = "1"
    Appareamment... ca marche

    Merci à tous, on verra bien comment ça évolue lors de mes futurs tests.

    Attention le .NET sur PDA peut causer des chutes de cheveux

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/03/2006, 14h29
  2. Paramètres dans une requête
    Par christellel198 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/10/2005, 13h49
  3. Récupération des paramètres d'une requête
    Par TomPad dans le forum Access
    Réponses: 10
    Dernier message: 16/06/2005, 15h11
  4. Réponses: 7
    Dernier message: 18/05/2005, 15h09
  5. Passage de paramètres dans une requête imbriquée
    Par DrakkoFR dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/02/2005, 12h46

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