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

MS SQL Server Discussion :

[SQL2K] Clause IF qui ne marche pas ?


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 95
    Points : 66
    Points
    66
    Par défaut [SQL2K] Clause IF qui ne marche pas ?
    Bonjour,
    J'ai un problème assez déroutant en transact sql. j'ai dans une procédure stockée le test suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DECLARE @iNombre as [int]
    ...
    SET @iNombre=0
    ...
    IF ( (@iNombre=1)  AND (@bPar_Valide=1) AND (@iRetourGeneral=0)  )
    Je fais un print avant le test : @iNombre est à 0
    Malgrè ce, je rentre dans le "if" ci-dessus et non dans le else associé.

    La première condition n'est pas vérifiée et je rentre dans le if...
    J'y perd mon latin depuis 1 heure ! Soit je suis aveugle, soit y'a une variable d'environnement qui n'est pas initialisée comme il faut soit j'ai un gros soucis de logique

    Merci pour votre aide !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    t'a le code en entier ?

    Parce que là, comme ca, oui c pas logique

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 95
    Points : 66
    Points
    66
    Par défaut
    Merci de ton aide.

    C'est à n'y rien comprendre. A force de chercher / debugger, j'ai fait des "print" de mes trois valeurs testées dans le if.
    A partir de ce moment, mon test à marché, y compris lorsque j'ai enlevé les "print"

    Aurais-je fais sans m'en apercevoir une manipulation... (parenthèse changée...)

    Pas très rassurant tout ça.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    tu fais du dev en C++ ou qqchose comme ca ?
    Parce qu'en SQL tu n'as pas besoin de toutes ces parenthèses

  5. #5
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Salut,

    Comme dit Zers, le code en entier aiderait.

    Y a-t-il plusieurs instructions dans ton IF ? Si oui, tu dois les mettre dans un bloc BEGIN ... END

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 911
    Points : 51 666
    Points
    51 666
    Billets dans le blog
    6
    Par défaut
    Toutes vos parenthèses ne servent strictement à rien sinon à rendre illisible votre code.

    Voici ce que vous auriez dû écrire et la bonne manière de présenter les choses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DECLARE @iNombre as int
    ...
    SET @iNombre = 0
    ...
    IF     @iNombre = 1  
       AND @bPar_Valide = 1 
       AND @iRetourGeneral = 0
    A +

Discussions similaires

  1. clause EXCEPT qui ne marche pas
    Par Platon93 dans le forum Access
    Réponses: 3
    Dernier message: 26/11/2006, 14h21
  2. [SWING] KeyListener qui ne marche pas
    Par kindool dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 10/01/2005, 19h04
  3. Iptables configuration qui ne marche pas....
    Par The_Nail dans le forum Sécurité
    Réponses: 7
    Dernier message: 03/02/2004, 14h27
  4. Réponses: 3
    Dernier message: 08/09/2003, 15h06
  5. Réponses: 9
    Dernier message: 07/05/2003, 12h57

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