Précédent   Forum du club des développeurs et IT Pro > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 29/10/2012, 18h54   #1
JP.NUAGE
Membre éprouvé
 
Avatar de JP.NUAGE
 
Inscription : avril 2006
Messages : 582
Détails du profil
Informations personnelles :
Âge : 70

Informations forums :
Inscription : avril 2006
Messages : 582
Points : 416
Points : 416
Envoyer un message via Skype™ à JP.NUAGE
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)
JP.NUAGE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2012, 07h06   #2
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 214
Détails du profil
Informations personnelles :
Nom : Homme Serge Girard
Âge : 56
Localisation : France

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

Informations forums :
Inscription : janvier 2007
Messages : 4 214
Points : 7 275
Points : 7 275
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
SergioMaster est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h56.


 
 
 
 
Partenaires

Hébergement Web