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 :

Editeur de requête [WD17]


Sujet :

WinDev

  1. #1
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut Editeur de requête
    Bonjour,

    Depuis la version 17 de Windev l'éditeur de requêtes ne me parait pas du tout pratique en particulier au niveau des jointures.



    Et voici le code généré :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    SELECT 
    	T_Valise.ID_Valise AS ID_Valise,	
    	T_Valise.NomPC AS NomPC,	
    	T_Valise.Version_IDS AS Version_IDS,	
    	T_Valise.VersionStartIDS AS VersionStartIDS,	
    	T_Valise.NumTeamViewer AS NumTeamViewer,	
    	T_Valise.DateEnvoieValise AS DateEnvoieValise,	
    	T_Valise.DateFinMaintenanceSoft AS DateFinMaintenanceSoft,	
    	T_Valise.DateFinMaintenanceHard AS DateFinMaintenanceHard,	
    	T_UsersValise.Responsable AS Responsable,	
    	T_OS.OS AS OS,	
    	T_Valise.NumLicenceWindows AS NumLicenceWindows,	
    	T_TypeValise.Type AS Type,	
    	T_Valise.Scanner AS Scanner,	
    	T_TypeConnexion.TypeConnexion AS TypeConnexion,	
    	T_Aeroport.Code AS Code,	
    	T_Villes.Ville AS Ville,	
    	T_Pays.Nom AS Nom,	
    	T_Valise.NumSerieScan AS NumSerieScan,	
    	T_Valise.VersionSDK AS VersionSDK
    FROM 
    	T_Villes
    	RIGHT OUTER JOIN
    	(
    		T_Pays
    		RIGHT OUTER JOIN
    		(
    			T_Aeroport
    			RIGHT OUTER JOIN
    			(
    				T_UsersValise
    				RIGHT OUTER JOIN
    				(
    					T_TypeConnexion
    					RIGHT OUTER JOIN
    					(
    						T_TypeValise
    						RIGHT OUTER JOIN
    						(
    							T_OS
    							RIGHT OUTER JOIN
    							T_Valise
    							ON T_OS.ID_OS = T_Valise.ID_OS
    						)
    						ON T_TypeValise.ID_TypeValise = T_Valise.TypeValise
    					)
    					ON T_TypeConnexion.ID_TypeConnexion = T_Valise.ID_TypeConnexion
    				)
    				ON T_UsersValise.ID_UsersValise = T_Valise.ID_UsersValise
    			)
    			ON T_Aeroport.ID_Aeroport = T_UsersValise.Aéroport
    		)
    		ON T_Pays.ID_Pays = T_Aeroport.Pays
    	)
    	ON T_Villes.ID_Villes = T_Aeroport.Ville
    WHERE 
    	(
    	T_Valise.NomPC LIKE {ParamFiltre}
    	OR	T_UsersValise.Responsable LIKE {ParamFiltre}
    	OR	T_Valise.Scanner LIKE {ParamFiltre}
    	OR	T_OS.OS LIKE {ParamFiltre}
    )
    ORDER BY 
    	NomPC ASC
    Est-ce bien normal ?
    Je souhaite à la base n'afficher que les valises qui n'ont pas encore d'autres informations.

    Merci à tous.

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    J'avoue que je ne comprends pas toute ta requête (je ne connais pas ton modèle) mais ne serait-il pas plus simple de faire une recherche sur les id de T_Valise qui seraient à 0 ?

    Pour moi, l'éditeur de requête (wd12) est performant uniquement pour des requêtes simples (maxi 3 tables en jeu et 20 rubriques environ). Et encore... Ils ont amélioré depuis la 10 (2 jointures sur les mêmes tables étaient impossible).

    Bon, ça n'engage que moi, d'autres ont peut-être réussi à lui faire pondre des requêtes de la mort qui tue.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Points : 202
    Points
    202
    Par défaut
    Je suis de l'avis de frenchsting, je créé toutes mes requêtes manuellement.

    Si ton modèle contient des particularités et que vous êtes plusieurs à développer, il est intéressant de créer une classe qui va te permettre d'interroger ton modèle, l'intérêt c'est qu'en passant par cette classe, ça limite les erreurs et les subtilités sont respectées, en outre si ton modèle change tu n'as pas 50 requêtes (ou bien plus) ) retoucher, il suffit d'adapter ta classe.

    Je trouve ça très efficace.

  4. #4
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour
    Citation Envoyé par thierrybatlle Voir le message
    Depuis la version 17 de Windev l'éditeur de requêtes ne me parait pas du tout pratique en particulier au niveau des jointures.
    Pourquoi depuis la 17 ? Il n'a jamais été pratique cet éditeur de requête.
    Mais j'avoue que d'après ta capture c'est vraiment horrible ! ça ne pouvait pas être pire avant

    Il vaut mieux coder des requêtes comme ça à la main

    L'éditeur peut servir éventuellement pour créer des sources pour tables (ou autres champs) fichiers, mais à part ça ...

  5. #5
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Le principal intérêt est surtout que si tu renommes des champs dans les tables de ton analyse, l'éditeur les renomme. Sinon, c'est vrai que ça n'est fait que pour des "mini-requêtes".

    Il vaut mieux coder tes requêtes à la main afin de ne pas être embêté par ses limitations.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  6. #6
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    Bonjour,

    J'ai résolu mon problème en faisant une requête manuelle :
    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
    38
    39
     
    SELECT 
    	T_Valise.ID_Valise, 
    	T_Valise.NomPC, 
    	T_Valise.Version_IDS,
    	T_Valise.VersionStartIDS,
    	T_Valise.NumTeamViewer,
    	T_Valise.DateEnvoieValise,
    	T_Valise.DateFinMaintenanceSoft,
    	T_Valise.DateFinMaintenanceHard,
    	T_UsersValise.Responsable,
    	T_OS.OS,
    	T_Valise.NumLicenceWindows,
    	T_TypeValise.Type,
    	T_Valise.Scanner,
    	T_TypeConnexion.TypeConnexion,
    	T_Aeroport.Code,
    	T_Villes.Ville,
    	T_Pays.Nom,
    	T_Valise.NumSerieScan,
    	T_Valise.VersionSDK
    FROM 
    	T_Valise LEFT OUTER JOIN T_UsersValise ON T_Valise.ID_UsersValise = T_UsersValise.ID_UsersValise,
    	T_Valise LEFT OUTER JOIN T_OS ON T_Valise.ID_OS = T_OS.ID_OS,
    	T_Valise LEFT OUTER JOIN T_TypeValise ON T_Valise.TypeValise = T_TypeValise.ID_TypeValise,
    	T_Valise LEFT OUTER JOIN T_TypeConnexion ON T_Valise.ID_TypeConnexion = T_TypeConnexion.ID_TypeConnexion,
    	T_UsersValise LEFT OUTER JOIN T_Aeroport ON T_UsersValise.Aéroport = T_Aeroport.ID_Aeroport,
    	T_Aeroport LEFT OUTER JOIN T_Villes ON T_Aeroport.Ville = T_Villes.ID_Villes,
    	T_Aeroport LEFT OUTER JOIN T_Pays ON T_Aeroport.Pays = T_Pays.ID_Pays
    WHERE
    	(
    			T_Valise.NomPC LIKE %{ParamFiltre}%
    		OR	T_UsersValise.Responsable LIKE %{ParamFiltre}%
    		OR	T_TypeValise.Type LIKE %{ParamFiltre}%
    		OR	T_Valise.Scanner LIKE %{ParamFiltre}%
    		OR	T_OS.OS LIKE %{ParamFiltre}%
    	)
    ORDER BY
    	T_Valise.NomPC ASC
    Maintenant j'ai un problème avec les % , il me dit "mot inattendu %%".
    Je ne donne aucune valeur à ParamFiltre et même avec une valeur j'ai ce message d'erreur.

    Merci.

  7. #7
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour
    il ne te manque pas les ' dans ton code ?
    ou ton envoi de paramètre ne devrait-il pas contenir lui le % ?

    Gancau

  8. #8
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    Voici la requête que j'ai fait à la main et qui fonctionne.
    Merci à tous.
    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
    38
    39
     
    SELECT 
    	T_Valise.ID_Valise, 
    	T_Valise.NomPC, 
    	T_Valise.Version_IDS,
    	T_Valise.VersionStartIDS,
    	T_Valise.NumTeamViewer,
    	T_Valise.DateEnvoieValise,
    	T_Valise.DateFinMaintenanceSoft,
    	T_Valise.DateFinMaintenanceHard,
    	T_UsersValise.Responsable,
    	T_OS.OS,
    	T_Valise.NumLicenceWindows,
    	T_TypeValise.Type,
    	T_Valise.Scanner,
    	T_TypeConnexion.TypeConnexion,
    	T_Aeroport.Code,
    	T_Villes.Ville,
    	T_Pays.Nom,
    	T_Valise.NumSerieScan,
    	T_Valise.VersionSDK
    FROM 
    	T_Valise LEFT OUTER JOIN T_UsersValise ON T_Valise.ID_UsersValise = T_UsersValise.ID_UsersValise,
    	T_Valise LEFT OUTER JOIN T_OS ON T_Valise.ID_OS = T_OS.ID_OS,
    	T_Valise LEFT OUTER JOIN T_TypeValise ON T_Valise.TypeValise = T_TypeValise.ID_TypeValise,
    	T_Valise LEFT OUTER JOIN T_TypeConnexion ON T_Valise.ID_TypeConnexion = T_TypeConnexion.ID_TypeConnexion,
    	T_UsersValise LEFT OUTER JOIN T_Aeroport ON T_UsersValise.Aéroport = T_Aeroport.ID_Aeroport,
    	T_Aeroport LEFT OUTER JOIN T_Villes ON T_Aeroport.Ville = T_Villes.ID_Villes,
    	T_Aeroport LEFT OUTER JOIN T_Pays ON T_Aeroport.Pays = T_Pays.ID_Pays
    WHERE
    	(
    			T_Valise.NomPC LIKE '%{ParamFiltre}%'
    		OR	T_UsersValise.Responsable LIKE '%{ParamFiltre}%'
    		OR	T_TypeValise.Type LIKE '%{ParamFiltre}%'
    		OR	T_Valise.Scanner LIKE '%{ParamFiltre}%'
    		OR	T_OS.OS LIKE '%{ParamFiltre}%'
    	)
    ORDER BY
    	T_Valise.NomPC ASC

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/05/2011, 15h27
  2. [AC-2003] Problème affichage Editeur de requêtes
    Par lio33 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 18/01/2010, 15h08
  3. [WD14] Editeur de requête et paramètres
    Par thierrybatlle dans le forum WinDev
    Réponses: 2
    Dernier message: 09/12/2009, 09h13
  4. [2K5] Editeur de requête
    Par Erwan1978 dans le forum SSRS
    Réponses: 0
    Dernier message: 30/04/2009, 15h16
  5. [SQL] Editeur de requête SQL en PHP
    Par lodan dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 19/07/2006, 17h55

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