p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre éprouvé
    Avatar de JP.NUAGE
    Inscrit en
    avril 2006
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 73

    Informations forums :
    Inscription : avril 2006
    Messages : 605
    Points : 460
    Points
    460

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    6 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 6 307
    Points : 12 741
    Points
    12 741
    Billets dans le blog
    3

    Par défaut

    Bonjour , cherches dans les EXCUTE STATEMENT et tu auras la réponse je pense à quelque chose de ce genre .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. [WD18] Champ table chargé par programmation
    Par plambert123 dans le forum WinDev
    Réponses: 4
    Dernier message: 18/12/2013, 18h08
  2. Changer la source d'un champ page interne par programmation
    Par CHARLI BONGO dans le forum WebDev
    Réponses: 1
    Dernier message: 24/07/2012, 14h44
  3. [WD17] associer un champs à un onglet par programmation
    Par cassandra dans le forum WinDev
    Réponses: 22
    Dernier message: 18/06/2012, 08h56
  4. [WD15] création de champs de saisie par programmation
    Par stefano dans le forum WinDev
    Réponses: 2
    Dernier message: 17/02/2012, 22h44
  5. comment ajouter un champ au table par programme delphi
    Par mechatikhaled dans le forum Débutant
    Réponses: 2
    Dernier message: 22/12/2008, 08h55

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