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

Langage SQL Discussion :

Aide pour une procédure stockée


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut Aide pour une procédure stockée
    Bonjour à tous, je n'arrive pas a faire une procédure stockée, et j'aurais besoin de vos lumières:
    je me suis crée une page permettant de consulter un registre de comptes
    Un compte peut être en traitement, annulé supprimé, ect.... bref, il peut avoir plusieurs statut (7 en tout)
    je présente donc dans ma page des case à cocher avec comme options les différent statut. L'utilisateur peut ainsi afficher la liste de compte selon leur statut. Par exemple, si il veut tout les compte qui ont été supprimé et aussi les compte annulé, et bien il coche ces deux statut, et c'Est censé le lui afficher .
    Je passe donc pour l'instant en paramètre tout mes statuts avec une valeur de 1 si le statut en question a été cocher.

    Dans ma procédure stockée, je me crée une string avec le select, et une pour chaque condition pour ensuite l'executer. Voici un bref résumé du 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
     
    SET @DebSQL = 'SELECT  * FROM Table 
    WHERE systeme = film' 
     
    IF @suprime=1
    BEGIN
    	SET @cond_1=' etat.noseq_cheq_etat = 4'
    END 
     
    IF @annule=1
    BEGIN
    	SET @cond_2=' OR etat.noseq_cheq_etat = 6'
    END
     
    IF @inactif=1
    BEGIN
    	SET @cond_3=' OR etat.noseq_cheq_etat = 6'
    END 
     
     
    SET @sqlFinal = @DebSQL + ' AND ('+ @cond_1 + @cond_2 + @cond_3 + ')'
    exec( @sqlFinal )
    ...
    mon problème je n'arrive pas a bien gérer les OR de mes conditions...aussitôt que lors du premier if le statut n'est pas = 1, alors je passe aux autres conditions qui commencent par un OR....je ne peux pas non plus mettre les OR lorsque je crée ma string finale car si l'une des conditions ne contient rien alors le OR me donne une erreur
    Avez-vous une idée de comment faire%
    merci de votre aide
    shirya
    (j'espère uqe j'ai été clair)

  2. #2
    cdu
    cdu est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 196
    Points : 222
    Points
    222
    Par défaut
    pourquoi ne laisse tu pas tout les or dans ton select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    where ... and ((supprime=1 and tat.noseq_cheq_etat = 4)
    or (supprime=2 and tat.noseq_cheq_etat = 5)
    or ...
    or (supprime=n and tat.noseq_cheq_etat = m))

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

Discussions similaires

  1. Aide pour une procédure stockée
    Par winnyzeboss1 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 19/04/2011, 20h53
  2. Plusieurs colonnes pour une procédure stockée.
    Par Helau dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 22/01/2008, 15h25
  3. Aide sur une Procédure stockée
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/12/2006, 00h48
  4. Réponses: 2
    Dernier message: 03/12/2006, 12h37
  5. aide pour une procédure
    Par beberd dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 08/11/2006, 09h57

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