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

SQL Oracle Discussion :

Condition OR non prise en compte


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Condition OR non prise en compte
    Bonjour Bonjour.

    J'ai des requêtes avec un grand nombre de condition à l'interieur. Le problème arrive avec certaines conditions OR.
    Je m'explique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select cols from tables 
    where ( (MaCheckBoxIsClick = 'True') OR (MaCheckBoxIsClick = 'False' AND tables.Val = :valeur) )
    la valeur est à null si la checkBox n'est pas cliqué de manière à améliorer les performances de l'application mais même si elle est null et que la condition ne doit pas être validé (puisque la checkBox n'est pas cliqué) elle vérifie la valeur et donc ma requête renvoi un résultat null.

    (si je clique sur ma Box avec cette requete je ne recoit rien en retour par contre si je clique sur ma Box avec la requête suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select cols from tables 
    where (MaCheckBoxIsClick = 'True')
    tout va bien
    )

    Any ideas ?

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    C'est pas clair.
    Les règles du forum sont : préciser l'outil utiliser (et maintenant poster dans le bon sous forum) et les versions.

    T'es sous forms ? sous sql ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    j'utilise Oracle 9.i et je fais une application web sous visual web developper en asp.net mélangé à du VB.

    Dans ma requête sql je peux prendre en compte si des composants genre CheckBox sont cliqués ou non et en fonction comparer la table à des valeurs d'une liste déroulante.
    Si la checkBox n'est pas selectionnée alors ma Liste déroulante n'est pas peuplée et je voudrais que ma requête renvoit tous le tableau.
    Sinon si elle est sélectionnée je veux récupérer que les valeurs du tableau ayant la valeur de ma liste déroulante. La liste est peuplée lors du click sur la CheckBox.

    Le problème est que la requête ne renvoit rien du tout si ma liste déroulante n'est pas peuplé. Si jamais je rentre une valeur par défaut 0 dans la liste déroulante, alors la requete marche.

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Thetonio007
    Si la checkBox n'est pas selectionnée alors ma Liste déroulante n'est pas peuplée et je voudrais que ma requête renvoit tout le tableau.
    Sinon si elle est sélectionnée je veux récupérer que les valeurs du tableau ayant la valeur de ma liste déroulante. La liste est peuplée lors du click sur la CheckBox.

    Le problème est que la requête ne renvoit rien du tout si ma liste déroulante n'est pas peuplé. Si jamais je rentre une valeur par défaut 0 dans la liste déroulante, alors la requete marche.
    Je suppose que :valeur correspond à ta valeur de liste déroulante.
    Mais ce que tu as codé, c'est l'inverse :
    Si CheckBox = True tu renvoies toute la table
    Si checkbox = false, tu ne renvoies que les données val= :valeur de ta table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT cols FROM TABLES 
    WHERE ( (MaCheckBoxIsClick = 'True') OR (MaCheckBoxIsClick = 'False' AND TABLES.Val = :valeur) )

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    oui, en effet, je me suis tromper.
    Je dois avoir trop de pixels dans le crane.

    C'est l'inverse.
    Mais de toute façon que ça soit l'un ou l'auter, le problème est que si je veux qu'il m'affiche toute la table alors que ma liste est vide il ne m'affichera rien alors qu'il ne devrait pas aller voir dans le OR puisqu'il est faux. Par contre s'il y a une valeur quelconque dans la liste alors la requête sera valider.

    Bizarre.

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Alors c'est un pb de variable.
    La requete sql doit marcher.
    Es-tu sur de la valeur de MaCheckBoxIsClick ?

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    absolument certain.
    En fait c'est le resultat de la méthode CheckBox1.checked qui renvoit True ou False.
    Je l'affiche même dans un Label pour m'en assurer.

    ce qui donne clairement:

    <code>
    WHEN (CheckBox1.Checked LIKE 'False' OR (CheckBox1.Checked LIKE 'True' AND MaTable.Valeur = DropDownList1.SelectedValue))
    </code>


    Si je mets une valeur bidon dans ma liste et que la CheckBox n'est pas cochée, la requete passe et je récupère toute ma table.
    Si ma liste est vide et que la CheckBox n'est pas cochée alors la requete est null
    Si la CheckBox est cochée, ma liste se remplie automatiquement et le résultat de ma requete correspond à la valeur selectionnée dans la liste.

  8. #8
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    essaye de supprimer ta condition where et de mettre les données dans le select.
    Tu verras où ça foire.

Discussions similaires

  1. Conditions non prises en compte
    Par hoshizora dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 21/05/2012, 10h10
  2. Non prise en compte de certaines conditions avec Fonction SI
    Par argaz01 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 14/06/2010, 08h10
  3. Réponses: 0
    Dernier message: 03/06/2009, 11h09
  4. condition sur while non prise en compte
    Par Thierry2008 dans le forum Débuter
    Réponses: 4
    Dernier message: 24/04/2009, 18h24
  5. [AJAX] Condition non prise en compte!
    Par axl2008 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 18/11/2008, 11h31

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