Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/03/2011, 10h01   #1
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 612
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

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

Informations forums :
Inscription : janvier 2007
Messages : 3 612
Points : 4 509
Points : 4 509
Par défaut recherche d'un parser

Bonjour,
Avant d'avoir à réinventer la roue, quelqu'un a t'il connaissance d'une UDF ou d'un moyen de traiter une formule mathématique ?

Mon problème est le suivant : j'ai une quantité exprimé en 'unité usine' , une 'unité fournisseur' avec formule de conversion (conservée dans un fichier UNITES) genre : 1/1.60 dans le cas de M2 vs Mètre Linéaire de 1,60 .

le hic est que bien sur cast('1/1.60' as NUMERIC(15,2)) ne fonctionne pas
__________________
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
SergioMaster est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 12h21   #2
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 213
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 213
Points : 3 315
Points : 3 315
tu peux en dire plus ?

c'est quoi le contexte, c'est quoi le fichier UNITES ?
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 15h36   #3
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
bonjour


et pourquoi pas cela

Code :
1 / cast('1.60' AS NUMERIC(15,2))
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 19h25   #4
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
La Rfunc intégre une fonction de ce type.

CalcExpr(S1, S2)

exemple:
Code :
1
2
CalcExpr('Sin( Pi*:p11/3)*:P2', 'P11=2;P2=10');
CalcExpr('1/1.60');
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 09h46   #5
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 612
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

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

Informations forums :
Inscription : janvier 2007
Messages : 3 612
Points : 4 509
Points : 4 509
Citation:
Envoyé par makowski Voir le message
tu peux en dire plus ?
c'est quoi le contexte, c'est quoi le fichier UNITES ?
C'est vrai que j'ai été un peu laconique , je relève d'une tres groossse intox et mon cerveau s'en remet juste (un bout a du partir avec )
je suis prêt a donner plus de détail bien sur , mais je crois que Barbibulle me sort de l'ornière


@dehorter oui , bien sur , sauf que là c'est une formule peu complexe et que cela oblige a décomposer

@barbibulle Alleluia c'est exactement ce que j'espérais entendre :
'ne réinventes rien' je ne me rappelais pas de Rfunc

je vous tient au courant après un nouveau somme réparateur ....
__________________
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
SergioMaster est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 10h44   #6
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 612
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

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

Informations forums :
Inscription : janvier 2007
Messages : 3 612
Points : 4 509
Points : 4 509
Re ,

CalcExpr correspond parfaitement a ma demande

Code :
1
2
 
SELECT CalcExpr('1/1.60','') FROM RDB$DATABASE;
Merci Barbibulle , je vais (re)decouvrir cette mine de UDF
__________________
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
SergioMaster est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 15h48   #7
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 213
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 213
Points : 3 315
Points : 3 315
sauf que Rfunc n'est pas vraiment maintenu il me semble

mais bon
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 21h14   #8
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Oui elle n'est plus maintenue depuis fin 2003.
Mais elle fonctionne encore avec fb 2.1x 32bits (je ne me souviens pas l'avoir essayée avec fb2.5)

FreeadhocUDF a repris pas mal des fonctions de rfunc mais pas CalcExpr.

http://freeadhocudf.org/documentatio...fra_nicht.html

Citation:
de rFunc (dernière version 2003-11-27)

* pas de besoin
o - EAN13CS
o - CALCEXPR
o - EXPRISVALID


Peut être suffirait il d'écrire à Madame FreeadhocUDF et lui dire qu'on a trouvé l'utilisateur qui en a besoin ? !
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 22h33   #9
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 612
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

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

Informations forums :
Inscription : janvier 2007
Messages : 3 612
Points : 4 509
Points : 4 509
Ca m'évite surtout d'avoir à écrire la mienne (quoique tout était prêt)
__________________
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
SergioMaster est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web