78 votes

Analyser le code SQL en C #

Je veux analyser le code SQL à l'aide de C#.

Plus précisément, est-il disponible gratuitement analyseur qui peut analyser le code SQL et de générer un arbre ou toute autre structure? Il convient également de générer le bon arbre pour les structures imbriquées.

Il doit également retourner le type de déclaration, le nœud de cet arbre représente.

Par exemple, si le noeud contient une condition de boucle, alors il devrait revenir que c'est "une boucle de type" d'un nœud.

Ou est-il un moyen par lequel je peux analyser le code en C# et de générer une arborescence du type je veux?

12voto

TFD Points 10618

Utilisez Microsoft Entity Framework (EF).

Il a un analyseur "Entity SQL" qui construit un arbre d'expression,

 using System.Data.EntityClient;
...
EntityConnection conn = new EntityConnection(myContext.Connection.ConnectionString);
conn.Open();
EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = @"Select t.MyValue From MyEntities.MyTable As t";
var queryExpression = cmd.Expression;
....
conn.Close();
 

Ou quelque chose comme ça, vérifiez-le sur MSDN.

Et tout est sur Ballmers tick :-)

Il en existe également un sur le projet de code, SQL Parser .

Bonne chance.

8voto

cbp Points 9676

C’est ce que vous recherchez: l’ analyseur T-SQL / SQL de Temporal Wave (seulement 12 000 $!).

8voto

James Points 41

Vous pouvez consulter un composant commercial: l’analyseur SQL général à l’ adresse http://www.sqlparser.com. Il prend en charge la syntaxe SQL d’Oracle, T-SQL, DB2 et MySQL.

6voto

Andrew Peters Points 6012

Essayez ANTLR - Il y a un tas de grammaires SQL là-bas.

4voto

Mehmet Aras Points 3901

VSTS 2008 Database Edition GDR comprend assemblées que gérer SQL d'analyse et de génération de script que vous pouvez faire référence à votre projet. Edition de base de données utilise l'analyseur de parser les fichiers de script pour représenter en mémoire le modèle de votre base de données, puis utilise le générateur de script pour générer des scripts SQL à partir du modèle. Je pense qu'il y a juste deux assemblées, vous avez besoin d'avoir et de référence dans votre projet. Si vous n'avez pas l'édition de base de données, vous pouvez installer la version d'essai pour obtenir les assemblées ou il y a peut être un autre moyen de les avoir sans l'installation de la base de données de l'édition. Consultez le lien suivant. Les données Mec:Arriver à les Joyaux de la Couronne .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X