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 Firebird Discussion :

[CASE] Comment ca marche ?


Sujet :

SQL Firebird

  1. #1
    Membre actif
    Inscrit en
    Juin 2002
    Messages
    409
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 409
    Points : 234
    Points
    234
    Par défaut [CASE] Comment ca marche ?
    Bonjour, je suis en train d'ecrire un trigger dans lequel je test un champ, et suivant la valeur de ce champ, je fait un traitement particulier.
    je pensais faire ca avec l'instruction CASE de cette maniere :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    CASE NEW.Champ
       when 'R' then ...
       when 'D' then ...
       when 'I' then ...
    else ...
    ...
    Malheuresement, j'ai compris qu'apres que CASE est fait pour aller avec SELECT. Alors j'aimerais juste savoir si quelqu'un a une solution pour faire cela sans passer par une suite de IF imbriques ?

    PS : Je travail avec Firebird 1.5

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Il n'y a à ma connaissance hélas que les if imbriqué ou si vous n'avez rien d'autre après le traitement du else (donc s'il n'y a pas de traitement commun) vous pouvez faire ceci :
    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
    BEGIN/*Debut procedure*/
      ...
      ...
      if (Champ='R') then
      begin
        ...
        ...
        exit;
      end
     
      if (Champ='D') then
      begin
        ...
        ...
        exit;
      end
     
      if (Champ='I') then
      begin
        ...
        ...
        exit;
      end
     
      /*Traitement du else ...*/
      ...
      ...
    END /*Fin de la procédure*/
    Le Exit permet de dire à interbase d'aller au end final et donc de quitter la procédure (mais ne gènère pas d'exeption ou d'erreur, c'est une fin 'normale')

  3. #3
    Membre actif
    Inscrit en
    Juin 2002
    Messages
    409
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 409
    Points : 234
    Points
    234
    Par défaut
    Ben oui !
    Impec, cette solution me va bien

    Merci Barbibulle.

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

Discussions similaires

  1. ToAsciiEx, comment cela marche ?
    Par mikyfpc dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/02/2004, 21h39
  2. [MFC] list box : comment ça marche
    Par runn2 dans le forum MFC
    Réponses: 4
    Dernier message: 28/01/2004, 12h36
  3. [SYNEDIT] -> Comment ça marche ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 19h11
  4. [TP][Turbo Vision] comment ça marche ??
    Par Costello dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 05/08/2003, 00h24
  5. [update][req. imbriquee] Comment ca marche ??
    Par terziann dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/07/2003, 12h51

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