J'ai une application web J2EE =E0 faire =E9voluer qui contient un =E9cran
avec des crit=E8res de recherche. L'utilisateur renseigne les crit=E8res
et lors du clic sur un bouton "valider", une requ=EAte SQL est
ex=E9cut=E9e vers la base de donn=E9es et renvoie les r=E9sultats =E0
l'=E9cran (fonctionnement classique).
Actuellement les crit=E8res de recherche peuvent =EAtre renseign=E9s
simplement avec une valeur. Par exemple, si un crit=E8re est renseign=E9
avec la valeur A ma requ=EAte SQL sera du type : select * from table
where crit=E8re =3D 'A'
Aujourd'hui, on me demande de prendre en compte l'utilisation de
formules logiques dans les crit=E8res de recherche. Par exemple un
crit=E8re pourra =EAtre renseign=E9 avec une cha=EEne du type
((A ET B) OU (C SAUF D)) ET E ...
Et il me faudra alors convertir cette cha=EEne en requ=EAte SQL.
Ma question est donc de savoir s'il existe une API ou m=E9thode
quelconque permettant d'interpr=E9ter les formules logiques (ET, OU,
SAUF et parenth=E8ses) ou alors faut il tout d=E9velopper ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Insitu
"mc31" writes:
Aujourd'hui, on me demande de prendre en compte l'utilisation de formules logiques dans les critères de recherche. Par exemple un critère pourra être renseigné avec une chaîne du type
((A ET B) OU (C SAUF D)) ET E ...
Et il me faudra alors convertir cette chaîne en requête SQL.
Ma question est donc de savoir s'il existe une API ou méthode quelconque permettant d'interpréter les formules logiques (ET, OU, SAUF et parenthèses) ou alors faut il tout développer ?
Peut être regarder du côté de EL, le langage d'expression utilisé dans les JSP. Sinon, c'est pas vraiment compliqué à redévelopper: 1. écrire une grammaire avec p.ex. antlr, javacc ou jcup. Très probablement, la grammaire existe déjà en tant que démo dans l'un ou l'autre 2. définir l'AST (si ce n'est pas fait) 3. définir un "visiteur" pour générer une chaîne SQL (ou n'importe quoi d'autre en parcourant l'AST)
Pour info, un pb similaire: http://www.oqube.com/projects/object-traversal/visitor.html
HTH
insitu.
"mc31" <mcostes@hotmail.com> writes:
Aujourd'hui, on me demande de prendre en compte l'utilisation de
formules logiques dans les critères de recherche. Par exemple un
critère pourra être renseigné avec une chaîne du type
((A ET B) OU (C SAUF D)) ET E ...
Et il me faudra alors convertir cette chaîne en requête SQL.
Ma question est donc de savoir s'il existe une API ou méthode
quelconque permettant d'interpréter les formules logiques (ET, OU,
SAUF et parenthèses) ou alors faut il tout développer ?
Peut être regarder du côté de EL, le langage d'expression utilisé dans
les JSP. Sinon, c'est pas vraiment compliqué à redévelopper:
1. écrire une grammaire avec p.ex. antlr, javacc ou jcup. Très
probablement, la grammaire existe déjà en tant que démo dans l'un ou l'autre
2. définir l'AST (si ce n'est pas fait)
3. définir un "visiteur" pour générer une chaîne SQL (ou n'importe
quoi d'autre en parcourant l'AST)
Pour info, un pb similaire:
http://www.oqube.com/projects/object-traversal/visitor.html
Aujourd'hui, on me demande de prendre en compte l'utilisation de formules logiques dans les critères de recherche. Par exemple un critère pourra être renseigné avec une chaîne du type
((A ET B) OU (C SAUF D)) ET E ...
Et il me faudra alors convertir cette chaîne en requête SQL.
Ma question est donc de savoir s'il existe une API ou méthode quelconque permettant d'interpréter les formules logiques (ET, OU, SAUF et parenthèses) ou alors faut il tout développer ?
Peut être regarder du côté de EL, le langage d'expression utilisé dans les JSP. Sinon, c'est pas vraiment compliqué à redévelopper: 1. écrire une grammaire avec p.ex. antlr, javacc ou jcup. Très probablement, la grammaire existe déjà en tant que démo dans l'un ou l'autre 2. définir l'AST (si ce n'est pas fait) 3. définir un "visiteur" pour générer une chaîne SQL (ou n'importe quoi d'autre en parcourant l'AST)
Pour info, un pb similaire: http://www.oqube.com/projects/object-traversal/visitor.html
HTH
insitu.
mc31
Merci beaucoup pour ces éléments de réponse. J'avais déjà entendu parler de antlr mais ça m'avait paru complexe à mettre en oeuvre rapidement. Par ailleurs qu'entends tu par AST ?
Merci d'avance Marie
"mc31" writes:
Aujourd'hui, on me demande de prendre en compte l'utilisation de formules logiques dans les critères de recherche. Par exemple un critère pourra être renseigné avec une chaîne du type
((A ET B) OU (C SAUF D)) ET E ...
Et il me faudra alors convertir cette chaîne en requête SQL.
Ma question est donc de savoir s'il existe une API ou méthode quelconque permettant d'interpréter les formules logiques (ET, OU, SAUF et parenthèses) ou alors faut il tout développer ?
Peut être regarder du côté de EL, le langage d'expression utilisé dans les JSP. Sinon, c'est pas vraiment compliqué à redévelopper: 1. écrire une grammaire avec p.ex. antlr, javacc ou jcup. Très probablement, la grammaire existe déjà en tant que démo dans l'un ou l'autre 2. définir l'AST (si ce n'est pas fait) 3. définir un "visiteur" pour générer une chaîne SQL (ou n'impor te quoi d'autre en parcourant l'AST)
Pour info, un pb similaire: http://www.oqube.com/projects/object-traversal/visitor.html
HTH
insitu.
Merci beaucoup pour ces éléments de réponse.
J'avais déjà entendu parler de antlr mais ça m'avait paru complexe
à mettre en oeuvre rapidement. Par ailleurs qu'entends tu par AST ?
Merci d'avance
Marie
"mc31" <mcostes@hotmail.com> writes:
Aujourd'hui, on me demande de prendre en compte l'utilisation de
formules logiques dans les critères de recherche. Par exemple un
critère pourra être renseigné avec une chaîne du type
((A ET B) OU (C SAUF D)) ET E ...
Et il me faudra alors convertir cette chaîne en requête SQL.
Ma question est donc de savoir s'il existe une API ou méthode
quelconque permettant d'interpréter les formules logiques (ET, OU,
SAUF et parenthèses) ou alors faut il tout développer ?
Peut être regarder du côté de EL, le langage d'expression utilisé dans
les JSP. Sinon, c'est pas vraiment compliqué à redévelopper:
1. écrire une grammaire avec p.ex. antlr, javacc ou jcup. Très
probablement, la grammaire existe déjà en tant que démo dans l'un ou l'autre
2. définir l'AST (si ce n'est pas fait)
3. définir un "visiteur" pour générer une chaîne SQL (ou n'impor te
quoi d'autre en parcourant l'AST)
Pour info, un pb similaire:
http://www.oqube.com/projects/object-traversal/visitor.html
Merci beaucoup pour ces éléments de réponse. J'avais déjà entendu parler de antlr mais ça m'avait paru complexe à mettre en oeuvre rapidement. Par ailleurs qu'entends tu par AST ?
Merci d'avance Marie
"mc31" writes:
Aujourd'hui, on me demande de prendre en compte l'utilisation de formules logiques dans les critères de recherche. Par exemple un critère pourra être renseigné avec une chaîne du type
((A ET B) OU (C SAUF D)) ET E ...
Et il me faudra alors convertir cette chaîne en requête SQL.
Ma question est donc de savoir s'il existe une API ou méthode quelconque permettant d'interpréter les formules logiques (ET, OU, SAUF et parenthèses) ou alors faut il tout développer ?
Peut être regarder du côté de EL, le langage d'expression utilisé dans les JSP. Sinon, c'est pas vraiment compliqué à redévelopper: 1. écrire une grammaire avec p.ex. antlr, javacc ou jcup. Très probablement, la grammaire existe déjà en tant que démo dans l'un ou l'autre 2. définir l'AST (si ce n'est pas fait) 3. définir un "visiteur" pour générer une chaîne SQL (ou n'impor te quoi d'autre en parcourant l'AST)
Pour info, un pb similaire: http://www.oqube.com/projects/object-traversal/visitor.html
HTH
insitu.
TestMan
Bonjour à tous,
J'ai une application web J2EE à faire évoluer qui contient un écran avec des critères de recherche. L'utilisateur renseigne les critères et lors du clic sur un bouton "valider", une requête SQL est exécutée vers la base de données et renvoie les résultats à l'écran (fonctionnement classique).
Actuellement les critères de recherche peuvent être renseignés simplement avec une valeur. Par exemple, si un critère est renseigné avec la valeur A ma requête SQL sera du type : select * from table where critère = 'A'
Aujourd'hui, on me demande de prendre en compte l'utilisation de formules logiques dans les critères de recherche. Par exemple un critère pourra être renseigné avec une chaîne du type
((A ET B) OU (C SAUF D)) ET E ...
Et il me faudra alors convertir cette chaîne en requête SQL.
Ma question est donc de savoir s'il existe une API ou méthode quelconque permettant d'interpréter les formules logiques (ET, OU, SAUF et parenthèses) ou alors faut il tout développer ?
Merci d'avance pour vos réponses
Marie
Bonjour,
Une première voie serait javax.el : création d'un contexte contenant les champs possible et ensuite passer la chaine pour coinstruire l'expression que vous devrez ensuite parcourir pour reconstruire sous forme SQL. Inconvénient : vous ne maitriserez pas la syntaxe de l'expression !
Vous pouvez essayer de http://kinetic.ac.donetsk.ua/JEL/
Ma solution préférée, vos utilisateurs semblent vouloir "plus de liberté" dans l'exécution des requètes exécutées. Pourquoi ne pas envisager un cube OLAP "restreint" avec Mondrian/JPivot par exemple ?
http://jpivot.sourceforge.net/temp-N1018C.html
A+ TM
Bonjour à tous,
J'ai une application web J2EE à faire évoluer qui contient un écran
avec des critères de recherche. L'utilisateur renseigne les critères
et lors du clic sur un bouton "valider", une requête SQL est
exécutée vers la base de données et renvoie les résultats à
l'écran (fonctionnement classique).
Actuellement les critères de recherche peuvent être renseignés
simplement avec une valeur. Par exemple, si un critère est renseigné
avec la valeur A ma requête SQL sera du type : select * from table
where critère = 'A'
Aujourd'hui, on me demande de prendre en compte l'utilisation de
formules logiques dans les critères de recherche. Par exemple un
critère pourra être renseigné avec une chaîne du type
((A ET B) OU (C SAUF D)) ET E ...
Et il me faudra alors convertir cette chaîne en requête SQL.
Ma question est donc de savoir s'il existe une API ou méthode
quelconque permettant d'interpréter les formules logiques (ET, OU,
SAUF et parenthèses) ou alors faut il tout développer ?
Merci d'avance pour vos réponses
Marie
Bonjour,
Une première voie serait javax.el : création d'un contexte contenant les
champs possible et ensuite passer la chaine pour coinstruire
l'expression que vous devrez ensuite parcourir pour reconstruire sous
forme SQL. Inconvénient : vous ne maitriserez pas la syntaxe de
l'expression !
Vous pouvez essayer de
http://kinetic.ac.donetsk.ua/JEL/
Ma solution préférée, vos utilisateurs semblent vouloir "plus de
liberté" dans l'exécution des requètes exécutées. Pourquoi ne pas
envisager un cube OLAP "restreint" avec Mondrian/JPivot par exemple ?
J'ai une application web J2EE à faire évoluer qui contient un écran avec des critères de recherche. L'utilisateur renseigne les critères et lors du clic sur un bouton "valider", une requête SQL est exécutée vers la base de données et renvoie les résultats à l'écran (fonctionnement classique).
Actuellement les critères de recherche peuvent être renseignés simplement avec une valeur. Par exemple, si un critère est renseigné avec la valeur A ma requête SQL sera du type : select * from table where critère = 'A'
Aujourd'hui, on me demande de prendre en compte l'utilisation de formules logiques dans les critères de recherche. Par exemple un critère pourra être renseigné avec une chaîne du type
((A ET B) OU (C SAUF D)) ET E ...
Et il me faudra alors convertir cette chaîne en requête SQL.
Ma question est donc de savoir s'il existe une API ou méthode quelconque permettant d'interpréter les formules logiques (ET, OU, SAUF et parenthèses) ou alors faut il tout développer ?
Merci d'avance pour vos réponses
Marie
Bonjour,
Une première voie serait javax.el : création d'un contexte contenant les champs possible et ensuite passer la chaine pour coinstruire l'expression que vous devrez ensuite parcourir pour reconstruire sous forme SQL. Inconvénient : vous ne maitriserez pas la syntaxe de l'expression !
Vous pouvez essayer de http://kinetic.ac.donetsk.ua/JEL/
Ma solution préférée, vos utilisateurs semblent vouloir "plus de liberté" dans l'exécution des requètes exécutées. Pourquoi ne pas envisager un cube OLAP "restreint" avec Mondrian/JPivot par exemple ?
http://jpivot.sourceforge.net/temp-N1018C.html
A+ TM
Laurent Pointal
Merci beaucoup pour ces éléments de réponse. J'avais déjà entendu parler de antlr mais ça m'avait paru complexe à mettre en oeuvre rapidement. Par ailleurs qu'entends tu par AST ?
Arbre Syntaxique Abstrait
http://fr.wikipedia.org/wiki/AST
Merci beaucoup pour ces éléments de réponse.
J'avais déjà entendu parler de antlr mais ça m'avait paru complexe
à mettre en oeuvre rapidement. Par ailleurs qu'entends tu par AST ?
Merci beaucoup pour ces éléments de réponse. J'avais déjà entendu parler de antlr mais ça m'avait paru complexe à mettre en oeuvre rapidement. Par ailleurs qu'entends tu par AST ?