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 :

Problème requête windev


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2017
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2017
    Messages : 81
    Points : 52
    Points
    52
    Par défaut Problème requête windev
    Bonjour à tous !

    Je demande votre aide car j'ai un souci prise de tête que je n'arrive pas à résoudre.

    J'ai une requête où je fais un comptage, la requête s'exécute correctement seulement au moment d'additionner
    le résultat Windev m'affiche une erreur :
    "Erreur dans la procédure. Un champ n'a pas de sous élément. L'opérateur '.' est interdit"

    Voici ma 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
    sql="SELECT COUNT(BASE_ONE.REF) AS NB, 
    DECODE (BASE_ONE.IT, 'PINOT', 'ALSACE', 'RIESLING', 'ALSACE', 'CHABLIS', 'BOURGOGNE') AS IT
    BASE_ONE.SEMAINE AS SEMAINE
    FROM BASE_ONE
    WHERE LEFT(BASE_ONE.DATE_COM,4)=2017
    Group by DECODE (BASE_ONE.IT, 'PINOT', 'ALSACE', 'RIESLING', 'ALSACE', 'CHABLIS', 'BOURGOGNE'), SEMAINE"
     
    HExécuteRequêteSQL(Rq,hRequêteDéfaut,sql)
    	HLitPremier(Rq) 
    	TANTQUE PAS HEnDehors(Rq) 
    		K=TableCherche(Table.SEMAINE,Rq.semaine,Vrai,1) 
    		SI K<>-1 ALORS 
    			{"Table.VIN_"+Rq.IT}[K]+=Rq.NB //L'erreur apparaît ici
    		FIN
    		HLitSuivant(Rq)
    	FIN
    	HLibèreRequête(Rq)
    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    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 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Normalement, Windev te dit sur quelle ligne ça plante (il donne le n°). Et dans la fenêtre en question, si tu cliques sur le bouton "Débugguer", il te positionne sur la ligne qui plante.

    Quelle est la ligne qui plante ?

    En relisant, je vois que c'est sur la ligne : {"Table.VIN_"+Rq.IT}[K]+=Rq.NB

    Décompose ton code :

    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
     
    sch est une chaine 
    sql=[
    SELECT COUNT(BASE_ONE.REF) AS NB, 
    DECODE (BASE_ONE.IT, 'PINOT', 'ALSACE', 'RIESLING', 'ALSACE', 'CHABLIS', 'BOURGOGNE') AS IT
    BASE_ONE.SEMAINE AS SEMAINE
    FROM BASE_ONE
    WHERE LEFT(BASE_ONE.DATE_COM,4)=2017
    Group by DECODE (BASE_ONE.IT, 'PINOT', 'ALSACE', 'RIESLING', 'ALSACE', 'CHABLIS', 'BOURGOGNE'), SEMAINE
    ]
     
    HExécuteRequêteSQL(Rq,hRequêteDéfaut,sql)
    	HLitPremier(Rq) 
    	TANTQUE PAS HEnDehors(Rq) 
    		K=TableCherche(Table.SEMAINE,Rq.semaine,Vrai,1) 
    		SI K<>-1 ALORS 
                            sch = "Table.VIN_"+Rq.IT
                            info ( " Pour controle ", "<" +sch  + ">"  ) 
    			{ sch, indchamp }[K]+=Rq.NB //L'erreur apparaît ici
    		FIN
    		HLitSuivant(Rq)
    	FIN
    	HLibèreRequête(Rq)
    La ligne info() va te permettre de voir si ce qui s'affiche là correspond bien au nom de ta colonne.
    En mettant <> avant et après, ça permet de voir s'il n'y aurait pas des caractères ESPACE qui gèneraient ?

    Et sur la ligne suivante, le tag IndChamp permet juste d'accélérer le traitement.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"Table.VIN_"+Rq.IT}[K]+=Rq.NB
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"Table.VIN_"+Rq.IT, indChamp}[K]+=Rq.NB

  4. #4
    Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2017
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2017
    Messages : 81
    Points : 52
    Points
    52
    Par défaut
    Bonjour et merci pour vos réponse.

    L'info affiche bien la bonne colonne sans espace.
    Le bug est toujours sur la même colonne qui est ALSACE-LORAINE.

    J'ai modifié mon code mais l'erreur reste sur :
    {"Table.VIN_"+Rq.IT, indChamp}[K]+=Rq.NB
    Le point ne lui plait visiblement pas ...

  5. #5
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Que donne le test de l'existence de la colonne (cf code ci-dessous) ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SI PAS ChampExiste(sch) ALORS
    	Erreur("La colonne n'existe pas !")
    SINON
    	{ sch, indchamp }[K]+=Rq.NB //L'erreur apparaît ici
    FIN

  6. #6
    Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2017
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2017
    Messages : 81
    Points : 52
    Points
    52
    Par défaut
    Merci pour votre aide, dans ma base de données il me manquait le "-" dans mon IT composé.
    Merci beaucoup !

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

Discussions similaires

  1. [WD16] Problème requête Windev
    Par Invité dans le forum WinDev
    Réponses: 7
    Dernier message: 04/06/2013, 14h27
  2. erreur3073 Problème requête
    Par amel123456789 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 01/04/2004, 10h15
  3. Problème requête qui renvoie plusieurs
    Par dai.kaioh dans le forum Langage SQL
    Réponses: 6
    Dernier message: 01/04/2004, 10h07
  4. Problème requête avec UNION et ORDER BY
    Par Yann21 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 12/12/2003, 11h02
  5. Réponses: 8
    Dernier message: 23/10/2003, 16h22

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