stone Posté 30 Mai 2006 Posté 30 Mai 2006 Bonjour à tous Je cherche un script qui me permet d'analyser une requête sql de type select : Les champs & les tables à sélectionner. Quelqu'un à déjà trouvé un script pareil ? merci.
MS-DOS_1991 Posté 30 Mai 2006 Posté 30 Mai 2006 Bonjour à tous Je cherche un script qui me permet d'analyser une requête sql de type select : Les champs & les tables à sélectionner. Quelqu'un à déjà trouvé un script pareil ? merci. Euh... la requête EXPLAIN par exemple ?
stone Posté 30 Mai 2006 Auteur Posté 30 Mai 2006 Euh... la requête EXPLAIN par exemple ? Merci pour ta réponse J'ai déjà trouvé ça, mais c'est apparemment pas standard : http://docs.postgresqlfr.org/8.0/sql-explain.html Compatibilité Il n'existe pas d'instruction EXPLAIN définie dans le standard SQL. je souhaite avoir une solution indépendante du sgbd.
Spidetra Posté 30 Mai 2006 Posté 30 Mai 2006 je souhaite avoir une solution indépendante du sgbd. Les optimisations de requête dépendent de la manière dont le SGBD implémente la norme SQL. A ma connaissance tout les optimiseurs de requêtes sont liés à un SGBD cible.
stone Posté 30 Mai 2006 Auteur Posté 30 Mai 2006 Les optimisations de requête dépendent de la manière dont le SGBD implémente la norme SQL.A ma connaissance tout les optimiseurs de requêtes sont liés à un SGBD cible. C'est pour éviter les instructions propriétaires que je veux passer par un script php qui utiliserait peut-être des expressions régulières !!
Spidetra Posté 30 Mai 2006 Posté 30 Mai 2006 C'est pour éviter les instructions propriétaires que je veux passer par un script php qui utiliserait peut-être des expressions régulières !! Qu'est-ce que tu cherches à faire exactement ??
stone Posté 30 Mai 2006 Auteur Posté 30 Mai 2006 Qu'est-ce que tu cherches à faire exactement ?? Récupérer les tables sélectionnées et les champs sélectionnés pour chaque table
Spidetra Posté 30 Mai 2006 Posté 30 Mai 2006 Tu aurais un SELECT du style : SELECT field1, field2, field3FROM foo f LEFT OUTER JOIN bar b on f.id = b.id_fooWHERE f.id > 45ORDER BY field1 desc tu voudrais que ton script te retourne : - field1, field2, field 3 : pour les champs - foo, bar : pour les tables C'est ça ?
Spidetra Posté 30 Mai 2006 Posté 30 Mai 2006 Si je devais faire un truc de ce style : 1. Je chercherai à savoir s'il existe des parser SQL : Parser SQL. Le premier résultat est un parser en Perl. Je ne sais pas s'il y en a en Php 2. Une fois que ta requête est parsée et que tu as tes champs et tes table. Tu veux savoir à quelle table appartient tel champ. Je ne sais pas s'il existe un langage générique de requêtage d'un serveur SGBD. Généralement, tu connais la structure des tables systèmes de ton SGBD, et tu fait des requêtes spécifiques sur ces tables. Tu retombe dans des syntaxes qui seront dépendantes de ton SGBD. Les tables systèmes de mySQL sont différentes de postGresql qui sont différentes de MSSQL qui sont différentes d'Oracle .... C'est ce genre de parser que tu cherche. Mais celui-là est en java : http://www.experlog.com/gibello/zql/ En Php tu as ça, mais il a pas l'air très actif : http://sourceforge.net/projects/osqlp/
stone Posté 30 Mai 2006 Auteur Posté 30 Mai 2006 Merci beaucoup pour ton aide je vais voir ce que je peux faire avec les différentes solutions proposées.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant