4

Microsoft.SqlServer.TransactSql.ScriptDomライブラリで遊んでいます。TSqlFragment から取得できるすべてのトークンをナビゲートする方法を見つけました。

TSql100Parser parser = new TSql100Parser(false);

TSqlFragment fragment;

using (StreamReader sr = new StreamReader(myStream))
{
    fragment = parser.Parse(sr, out parseErrors);
}

foreach (TSqlParserToken token in fragment.ScriptTokenStream)
{
    ...
}

TSqlFragmentVisitor クラスも見つけたので、ScriptDom ライブラリは、ナビゲート可能な TSqlFragment から T-SQL DOM を生成すると思います。しかし、私はそれを行う方法を見つけることができません...

手伝って頂けますか?ありがとう!

4

2 に答える 2

3

パーサーによって取得された結果の構文ツリーを分析することが目的の場合は、このリンクを参照できます。解析ツリーのルート ノードを取得すると、リンクに示されているようにクラスをfragment = parser.Parse(sr, out parseErrors)拡張することで、ビジターを使用してツリーをナビゲートできます。TSqlFragmentVisitorScriptDom で使用できるクラスの完全なリファレンスについては、こちらを参照してください

于 2014-04-03T15:03:30.210 に答える
2

Gert Drapers が GitHub で共有しているいくつかのプロジェクトに案内されました。

https://github.com/gertd/sqlscriptdom

ここに、訪問者を通じてフラグメントをナビゲートする方法の例があります。

よろしく。

于 2013-04-21T14:54:57.193 に答える