Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre éprouvé
    Avatar de JP.NUAGE
    Inscrit en
    avril 2006
    Messages
    600
    Détails du profil
    Informations personnelles :
    Âge : 71

    Informations forums :
    Inscription : avril 2006
    Messages : 600
    Points : 427
    Points
    427

    Par défaut Champ à nom composé par programme

    Bonjour à tous
    Je pense que je dois expliquer le titre. Je travaille en Firebird 2.1. Dans une table j'ai des champs "indicés" :
    MOIS01, MOIS02, MOIS03, ....
    faut pas être grand sorcier pour deviner que 01, 02, 03... sont les mois de l'année.
    En fonction de la date, je veux remplir, dans une procédure ou un trigger, le champ correspondant au mois, mais sans être obligé de faire toute une bardée de if, par exemple quelque chose comme ceci
    Code :
    1
    2
    xMois = 'MOIS' + /* ici le calcul du mois en fonction de la date*/;
    UPDATE MABASE SET &xMOIS = :MAVALEUR WHERE ....
    Bien sûr ce code est faux. Mais existe-t-il une solution ?
    Merci d'avance
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  2. #2
    Rédacteur/Modérateur
    Avatar de SergioMaster
    Homme Profil pro Serge Girard
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    5 091
    Détails du profil
    Informations personnelles :
    Nom : Homme Serge Girard
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 5 091
    Points : 9 426
    Points
    9 426

    Par défaut

    Bonjour , cherches dans les EXCUTE STATEMENT et tu auras la réponse je pense à quelque chose de ce genre .
    Code :
    1
    2
    3
    4
     
    xMois='MOIS'||EXTRACT(MONTH FROM UNEDATE);
    stmt='UPDATE MABASE SET '||xMOIS ||'= '||:MAVALEUR'||  WHERE ....';
    EXECUTE STATEMENT stmt;
    Attention aux espaces dans Stmt qui doit être un SQL Correct , attention aussi aux chaines caractères , ne pas oublier les '
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •