1. ホーム
  2. c#

C#でSQLコードをパースする [終了しました]

2023-10-06 11:47:25

質問

C#を使用してSQLコードを解析したい。

具体的には、SQLコードを解析し、そこからツリーまたは他の構造を生成できる、自由に利用可能なパーサーはありますか?また、ネストされた構造に対して適切なツリーを生成する必要があります。

また、このツリーのノードがどの種類のステートメントを表しているかも返すべきです。

例えば、もしノードがループ条件を含んでいるならば、これはノードの"ループタイプ"であることを返すべきです。

あるいは、C#でコードを解析して、欲しいタイプのツリーを生成する方法はありますか?

どのように解決するのですか?

[警告:2021年現在、回答は適用されない可能性があります]。

マイクロソフトを使用する エンティティ フレームワーク (EF)を使用します。

式木を構築する "Entity SQL" パーサーを備えています。

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();

みたいな感じで、MSDNで調べてみてください。

そして、それはすべてBallmers tick :-) にあります。

The Code Projectにもあります。 SQL パーサー .

頑張ってください。