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êtes chainées refusées par un étât


Sujet :

WinDev

  1. #1
    Membre confirmé Avatar de cdlr27
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 97
    Par défaut Requêtes chainées refusées par un étât
    J'ai construit deux requêtes chainées
    La première
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    SELECT 
    	Sorties.IDAnnee AS IDAnnee,	
    	Détails_sortie.Motard AS Motard,	
    	COUNT(Détails_sortie.NumFiche) AS NumDeRef_course,	
    	SUM(Détails_sortie.Nbre_jours_mot) AS S_Nbre_jours_mot,	
    	SUM(Détails_sortie.KM_app) AS S_KM_app,	
    	SUM(Détails_sortie.Km_course) AS S_Km_course,	
    	SUM(Détails_sortie.RembReel) AS S_RembReel
    FROM 
    	Sorties,	
    	Détails_sortie
    WHERE 
    	Sorties.IDSorties = Détails_sortie.IDSorties
    	AND
    	(
    		Détails_sortie.Benevole = 0
    		AND	Détails_sortie.Categorie = 'M'
    	)
    GROUP BY 
    	Détails_sortie.Motard,	
    	Sorties.IDAnnee
    la deuxième utilise la première
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SELECT 
    	Rq_StatMotard.Motard AS Motard,	
    	Rq_StatMotard.NumDeRef_course AS NumDeRef_course,	
    	Rq_StatMotard.S_Nbre_jours_mot AS S_Nbre_jours_mot,	
    	Rq_StatMotard.S_KM_app AS S_KM_app,	
    	Rq_StatMotard.S_Km_course AS S_Km_course,	
    	Rq_StatMotard.S_KM_app + Rq_StatMotard.S_Km_course AS S_Km,	
    	Rq_StatMotard.S_RembReel AS S_RembReel,	
    	Rq_StatMotard.S_RembReel / (Rq_StatMotard.S_KM_app + Rq_StatMotard.S_Km_course) AS F_Km,	
    	Rq_StatMotard.IDAnnee AS IDAnnee
    FROM 
    	Rq_StatMotard
    WHERE 
    	Rq_StatMotard.IDAnnee = {P_IdAnnee}
    ORDER BY 
    	NumDeRef_course DESC
    Dans l'éditeur, cela fonctionne correctement :
    Je créé automatique un étât tableau simple d'après la deuxième requête et quand je lance le test, j'obtiens une erreur :
    Fichier Rq_StatMotard inconnu

    Une erreur est survenue au moment de l'ouverture de l'état 'Etat_Stat_motards'.
    Erreur dans le code SQL de la requête <Rq_StatMotards>. Initialisation de la requête impossible.
    Fichier Rq_StatMotard inconnu

    ----- Informations techniques -----

    Projet : Manec

    Que s'est-il passé ?
    Une erreur est survenue au moment de l'ouverture de l'état 'Etat_Stat_motards'.
    Erreur dans le code SQL de la requête <Rq_StatMotards>. Initialisation de la requête impossible.
    Fichier Rq_StatMotard inconnu

    Code erreur : 70208
    Niveau : erreur non fatale (EL_ONRETURN)
    Code erreur WD55 : 208

    Dump de l'erreur du module 'WD170SQL.DLL' (17.0.110.5).
    Informations de débogage :
    IEWD170SQL=1.12
    Module=<WD170SQL>
    Version=<17.0.110.5>
    Fonction (21,4)
    Informations supplémentaires :
    EIT_LOGICALTABLENAME : <Rq_StatMotard>
    EIT_CORRIGE_ETAT : Etat_Stat_motards

    Assistance
    Je sollicite votre aide car je ne vois pas comment générer autrement les données pour mon étât, sachant que je souhaite lui ajouter des totaux ou moyennes par rubrique.

    Marcel

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Par défaut
    Bonjour Marcel,

    C'est un piège classique de l'EDI Windev.
    Si tu veux, tu peux lire ces discussions déjà anciennes mais toujours valables.
    http://forum.pcsoft.fr/fr-FR/pcsoft....lante/read.awp
    http://www.developpez.net/forums/d84...basee-requete/

    Tu pourrais exécuter la requête Rq_StatMotard dans leTraitement "Ouverture" de l'état.
    http://doc.pcsoft.fr/fr-FR/?1011037

    Une fois ce premier problème résolu, je pense que tu auras un autre souci de requête paramétrée pour {P_IdAnnee}.
    http://doc.pcsoft.fr/?2032032

    Bon dév.

  3. #3
    Membre confirmé Avatar de cdlr27
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 97
    Par défaut
    Merci pour toutes ces lectures, cela m'a bien éclairé, même s'il reste des zones d'ombre.
    J'en étais arrivé à la même conclusion, sauf que je rangeais les données dans un fichier intermédiaire (bien si peu d'enregistrements, mais pas joli). Je vais reprendre cela en tirant partie des indications des lectures.
    Pour le paramêtre, je pense essayer de le déplacer dans la première requête.

    A suivre

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2012
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 162
    Par défaut
    Bonjour,

    Je trouve que le chainage des requêtes est toujours source de soucis dans la mesure où on a du mal à suivre le fil. Et les règles de mise en place ne sont pas toujours très claires.
    C'est un bug que j'ai eu très souvent et cela arrivait de manière aléatoire. A la place, je préfère tout imbriqué dans une seule requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    SELECT 
    	StatMotard.Motard AS Motard,	
    	StatMotard.NumDeRef_course AS NumDeRef_course,	
    	StatMotard.S_Nbre_jours_mot AS S_Nbre_jours_mot,	
    	StatMotard.S_KM_app AS S_KM_app,	
    	StatMotard.S_Km_course AS S_Km_course,	
    	StatMotard.S_KM_app + Rq_StatMotard.S_Km_course AS S_Km,	
    	StatMotard.S_RembReel AS S_RembReel,	
    	StatMotard.S_RembReel / (Rq_StatMotard.S_KM_app + Rq_StatMotard.S_Km_course) AS F_Km,	
    	StatMotard.IDAnnee AS IDAnnee
    FROM 
    	(
               SELECT 
    	             Sorties.IDAnnee AS IDAnnee,	
    	             Détails_sortie.Motard AS Motard,	
    	             COUNT(Détails_sortie.NumFiche) AS NumDeRef_course,	
    	             SUM(Détails_sortie.Nbre_jours_mot) AS S_Nbre_jours_mot,	
    	             SUM(Détails_sortie.KM_app) AS S_KM_app,	
    	             SUM(Détails_sortie.Km_course) AS S_Km_course,	
    	             SUM(Détails_sortie.RembReel) AS S_RembReel
                FROM 
    	             Sorties, Détails_sortie
                WHERE 
    	             Sorties.IDSorties = Détails_sortie.IDSorties AND
    	             (
    		       Détails_sortie.Benevole = 0 AND
                           Détails_sortie.Categorie = 'M'
    	              )
                GROUP BY 
    	             Détails_sortie.Motard, Sorties.IDAnnee
            ) AS StatMotard
    WHERE 
    	StatMotard.IDAnnee = {P_IdAnnee}
    ORDER BY 
    	StatMotard.NumDeRef_course DESC

    Cordialement,

Discussions similaires

  1. [REGEXP] Sous chaine commene par et fini par...
    Par lionel69 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 02/05/2006, 15h45
  2. Requête sélection : recherche par nom
    Par leeloo77 dans le forum Access
    Réponses: 7
    Dernier message: 17/02/2006, 15h39
  3. Réponses: 16
    Dernier message: 26/01/2006, 09h49
  4. Réponses: 2
    Dernier message: 19/12/2005, 21h08
  5. Réponses: 3
    Dernier message: 21/06/2004, 11h20

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