rudhf
Messages postés62Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention30 juin 2007
-
8 mai 2007 à 20:20
rudhf
Messages postés62Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention30 juin 2007
-
10 mai 2007 à 00:23
Bonjour,
Je développe une application qui fait une connexion avec une BD. Il y a un richtext où l'usager saisit la requête SQL. Alors il faut que je fasse une analyse à cette requête avec regex.
Si j'écrit par exemple:
(@"^SELECT\s<expression1>\sFROM\s<expression2>\sWHERE\s<expression3>$")
expression1 à son tour n'est pas atomique, c'est une expression régulière que je dois programmer. En plus, SELECT peut avoir des clauses imbriquées. Alors comment faire ?
Merci pour votre aide.<!-- / message -->
rudhf
Messages postés62Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention30 juin 20072 9 mai 2007 à 11:55
Merci pour votre réponse.
Ce que je veux faire est de tester si la requête saisie par l'utilisateur est correcte ou non. Par exemple
select nom, prénom from personne where age=20;
Ici expression1=nom, prénom. Elle aussi est une expression régulière, je dois la tester et gérer les erreurs.
J'espère que j'étais clair, en tout cas je sus disponible pour toute autre question.
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 9 mai 2007 à 13:55
Vérifier la validité d'une requête SQL, c'est pas si facile que ça... Surtout que y'a des tonnes de façons différentes de former une requête !
En fait, ce que tu aimerais faire, c'est un peu ce qu'offre le query analyser... non?
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 9 mai 2007 à 21:35
Si tu as des questions précises oui, si c'est pour faire tout le programme, non.
On ne peut pas faire une regex qui fait ce que tu veux, c'est un peu plus compliqué que ça quand même, et y'a plusieurs heures de travail...
rudhf
Messages postés62Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention30 juin 20072 10 mai 2007 à 00:23
Oui, j'ai qlq questions bien précises.
1) Comment gérer les erreurs avec regex ?
2) Voici une petite partie de SELECT: select [distinct|all] col[,col]+
col peut avoir: count(*)|sum(*)|avg(*)|max(*)|min(*)|count(nom_colonne)|sum(nom_colonne)|avg(nom_colonne)|max(nom_colonne)|min(nom_colonne)|nom_colonne
Comment programmer ça avec les regex ? si je comprend ça je peux continuer tout seul.
Merci