Déclaration de requête SQL en XML - SQL/NoSQL - Programmation
Marsh Posté le 16-11-2006 à 15:03:31
|
ou à la limite :
http://david.manga-torii.com/views/v_attributs.xml
(y'a un lien vers ma dtd dans le fichier)
Marsh Posté le 16-11-2006 à 17:21:47
Merci mais ce n'est pas aussi simple que cela.
Je cherche une méthodologie déclarative permettant de couvrir la syntaxe compléte d'une requête SQL.
Pur exemple un peu simplet
<SQL result= client_1>
<SELECT table= client>
<FIELD_NAME>nom</FIELD_NAME >
<FIELD_NAME>prenom</FIELD_NAME>
<WHERE>
<FIELD_NAME >nom</FIELD_NAME >
<TYPE>EQUAL</TYPE >
<VALUE>DUPONT</VALUE>
</WHERE>
</SELECT>
</SQL>
Parser et traduit en
=> Select nom,prenom from client whete nom="DUPONT"
=> client 1 étant une donnée de récupération (table de hash par exemple)
si cela existe...
Marsh Posté le 16-11-2006 à 17:46:38
sauf qu'une requête SQL, c'est un peu plus compliqué que ça à la base.
tu pourras toujours tenter de faire un DTD qui permet de modéliser une requête, mais je doute TRES fortement que tu y arrive sans faire une usine à gaz monstrueuse et buggée
Marsh Posté le 16-11-2006 à 19:51:22
MagicBuzz a écrit : sauf qu'une requête SQL, c'est un peu plus compliqué que ça à la base. |
L'impossible n'est pas Paf
Concrétement, je sais exactement quoi faire si ce n'est cette histoire de dtd que j'aurai aimé déjà +/- normalisé.(Avec un petit outil open source java qui va bien )
Il n'y aura pas que des instructions SQL simple à modéliser (Insert, select, create), pas d'index, de vue, etc...
Il ne s'agit pas d'un projet perso mais cela rentre dans un contexte professionnel
Marsh Posté le 16-11-2006 à 20:29:18
Et tu sauras interpréter ce genre de requêtes toutes bêtes ?
|
Genre, c'est pas bien compliqué, ça te retourne, pour un produit dans une société donné, le prix maximum d'achat, son libellé dans la langue du fournisseur, ou à défaut, le nom non localisé, ainsi que le nom du fournisseur.
Moi je vote et je dis que rien que pour ce genre de petites requêtes à deux balles, tu risques d'en chier grave... (et c'est loin d'être compliqué comme requête)
Marsh Posté le 16-11-2006 à 20:52:14
C'est plus un schéma XSD qu'une DTD qui """permetterait""" de faire ça
Marsh Posté le 16-11-2006 à 20:58:30
ça tombe bien, mon exemple est un XSD en fait
mais ne va pas aussi loin, chuis pas maso
Marsh Posté le 16-11-2006 à 21:13:40
MagicBuzz a écrit : ça tombe bien, mon exemple est un XSD en fait |
C'est pas un outil super open source normalisé geek de la mort avec un nom à la tu ma vue version 12.18 dont j'ai nécessairement besoin..
J'ai la chance de savoir quelles seront les requêtes à déclarer, et cela n'ira pas plus loin qu'une double imbrication.
La norme XML est là pour cela. Je poste pas ici pour que l'on me démontre que comme avec sega, il y a toujours plus fort que toi ! A priori bien pensé, n'importe quelle requête SQL doit pouvoir être déclaré sous cette forme.
Marsh Posté le 16-11-2006 à 21:16:24
Moi non plus, mon truc c'est pas un machin de Geek ope source de la mort, c'est un framework que je suis en train de développer pour le boulot
Marsh Posté le 16-11-2006 à 21:20:22
paf27 a écrit : La norme XML est là pour cela. Je poste pas ici pour que l'on me démontre que comme avec sega, il y a toujours plus fort que toi ! A priori bien pensé, n'importe quelle requête SQL doit pouvoir être déclaré sous cette forme. |
Justement, et t'as qu'a la faire à la freestyle, ne fait même pas de DTD, parse l'XML à la main comme ça... Parfois une DTD ou un XSD sont soit trop overkill, soit trop limité. Rien ne vaut un parsing à la main
Marsh Posté le 16-11-2006 à 21:56:03
Sinon, je te laisse faire la XSD, mais à la limite, si je me suis pas planté, ma requête peut être traduite en XML de cette façon :
|
A noter que ma sous-requête dans le FROM l'empêche d'être jointe avec les autres tables avec une clause "inner join" classique.
Par contre, avec les "outer join", certaines choses sont impossibles à faire sans l'utilisation de la syntaxe littérale. Rien que pour ça, c'est limite impossible de modéliser ton truc (j'en ai fait que la moitié dans mon exemple)
Je ne parle pas non plus des imbrications d'oppérateurs pour les filtres (gestions de parenthèses), etc.
Je te laisse t'amuser ne serait-ce que pour écrire le XSD. Niveau structure, je pense être resté cohérent, et y'a pas de niveau de trop...
Franchement, reviens sur Terre : tu peux partir dans un truc bancale qui permet de stocker tes 3 requêtes. Mais si c'est pour faire un prog boîteux, incapable de tirer profit de cet éclatement de la requête (pkoi tu veux passer en XML d'abors ?) et ne pas être capable de gérer tous les cas, autant rester au niveau du fichier texte. Ca marche tout aussi bien
Marsh Posté le 16-11-2006 à 21:58:28
T'ain j'ai réussi à perdre 40 minutes de ma soirée sur ce truc juste pour lui démontrer que c'était débile
Chuis fou moi
Marsh Posté le 16-11-2006 à 21:59:41
Tiens, pis je viens de me rendre compte que j'avais oublié le group by dans ma requête originale. Démerde-toi avec
Marsh Posté le 16-11-2006 à 22:08:25
Sinon, j'y pense... Pour avoir une ébauche de DTD "complète", t'as qu'à regarder la doc d'un SGBD...
|
Là, t'as un truc MEGA basic. T'as même pas de ORDER BY, de GROUP BY, de HAVING, de WITH, de INTO, etc.
Have fun
Marsh Posté le 16-11-2006 à 22:25:48
MagicBuzz, si tu passes dans la région, j'te paye une bière
Marsh Posté le 16-11-2006 à 22:35:12
Une seule ? Bon, OK pour un formidable, sinon rien
T'habites où ?
Marsh Posté le 17-11-2006 à 09:12:22
Ca a l'air pas mal tout ça, je vais dépioter à tête reposé
Merci
Marsh Posté le 16-11-2006 à 14:54:52
Salut le forum,
Je suis à la recherche d'une dtd ou d'une exemple de fichier XML qui contiendrai non pas le résultat d'une requête SQL mais bel et bien la requête SQL elle même.
Le besoin est de pouvoir "stocker" sous la forme de fichier XML un ensemble de requête XML
Merci d'avance pour vos réponses