Exprimer une requête en XML

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

12 nov. 2006, 11:35

Salut à tous,

Est-ce que quelqu'un aurait par hasard entendu parler d'un programme ou simplement d'une définition servant à exprimer une requête SQL en XML ? Attention, je ne cherche pas à formater le résultat, je veux exprimer la requête. Un exemple fictif:

Code : Tout sélectionner

SELECT u.user_id, u.username, COUNT(p.*) AS num_posts FROM users u JOIN posts p USING (user_id) GROUP BY u.user_id
pourrait être exprimé sous la forme

Code : Tout sélectionner

<query type="select"> <columns> <column><field from_table="u">user_id</field></column> <column><field from_table="u">username</field></column> <column alias="num_posts"> <function name="count"><field from_table="p">*</field></function> </column> </columns> <tables> <table alias="u">users</table> <table alias="p">posts</table> </tables> <joins> <join type="inner"> <left>u</left> <right>p</right> <using>user_id</using> </join> </joins> <group_by> <column><field from_table="u">user_id</field></column> </group_by> </query>
Le but avoué étant de pouvoir produire du SQL 100% portable. En cherchant sur Google j'étais tombé sur SQLFairy (Perl) mais visiblement ils n'ont pas prévu de faire les requêtes SELECT/UPDATE/etc... dans l'immédiat.

J'ai regardé du côté de XQuery et compagnie, mais ça n'a pas de rapport non plus.

Toute aide sera la bienvenue :D

Mammouth du PHP | 684 Messages

12 nov. 2006, 14:36

Bon je sais c'est pas la réponse miracle attendu mais je trouve que ca va vient bien avec le sujet :
http://sqlpro.developpez.com/cours/avenirsql/
Je suis très intéressé par cette méthode de faire les requettes au format XML. Comme le décrit le lien on part vers de nouveaux moteurs de base de données seront sur le XML. Mais bon cela reste sur les données même.
De plus faudra attendre encore un peu avant que tout le monde l'utilise mais ca arrive.
Zigz4g

Mammouth du PHP | 1511 Messages

12 nov. 2006, 14:54

On pourrait toujours créer ca, ca pourrait être sympa non? :p
@+