Ejemplo n.º 1
0
        public void VisitRule(TextReader txtRdr, TSqlFragmentVisitor visitor)
        {
            IList <ParseError> errors;
            var sqlFragment = GetFragment(txtRdr, out errors);

            sqlFragment.Accept(visitor);
        }
Ejemplo n.º 2
0
        public static TSqlScript AnalyzeFragmentVisitor(string tSql, string sqlHash, TSqlFragmentVisitor visitor)
        {
            var sqlFragment = SqlFragmentProvider.GetSqlFragment(tSql, sqlHash);
            if (sqlFragment == null)
            {
                throw new InvalidOperationException(string.Format("Failed to get sqlFragment of \n{0}", tSql));
            }

            sqlFragment.Accept(visitor);
            return sqlFragment;
        }
Ejemplo n.º 3
0
        public static TSqlScript AnalyzeFragmentVisitor(string tSql, string sqlHash, TSqlFragmentVisitor visitor)
        {
            var sqlFragment = SqlFragmentProvider.GetSqlFragment(tSql, sqlHash);

            if (sqlFragment == null)
            {
                throw new InvalidOperationException(string.Format("Failed to get sqlFragment of \n{0}", tSql));
            }

            sqlFragment.Accept(visitor);
            return(sqlFragment);
        }
Ejemplo n.º 4
0
        private static bool VisitorIsBlackListedForDynamicSql(TSqlFragmentVisitor visitor)
        {
            if (visitor == null)
            {
                return(false);
            }

            return(new List <string>
            {
                "SetAnsiNullsRule",
                "SetNoCountRule",
                "SetQuotedIdentifierRule",
                "SetTransactionIsolationLevelRule",
                "UnicodeStringRule"
            }.Any(x => visitor.GetType().ToString().Contains(x)));
        }
Ejemplo n.º 5
0
        private void VisitFragment(TSqlFragment sqlFragment, TSqlFragmentVisitor visitor, IEnumerable <IOverride> overrides)
        {
            sqlFragment?.Accept(visitor);

            if (!VisitorIsBlackListedForDynamicSql(visitor))
            {
                var dynamicSqlVisitor = new DynamicSQLParser(DynamicSqlCallback);
                sqlFragment?.Accept(dynamicSqlVisitor);
            }

            void DynamicSqlCallback(string dynamicSQL, int DynamicSqlStartLine, int DynamicSqlStartColumn)
            {
                ((ISqlRule)visitor).DynamicSqlStartLine   = DynamicSqlStartLine;
                ((ISqlRule)visitor).DynamicSqlStartColumn = DynamicSqlStartColumn;

                var dynamicSqlStream = ParsingUtility.GenerateStreamFromString(dynamicSQL);
                var dynamicFragment  = fragmentBuilder.GetFragment(GetSqlTextReader(dynamicSqlStream), out var errors, overrides);

                dynamicFragment?.Accept(visitor);
            }
        }
Ejemplo n.º 6
0
 public ScriptParser(TSqlFragmentVisitor visitor, string path)
 {
     _visitor = visitor;
     _path    = path;
 }
Ejemplo n.º 7
0
        public static void AnalyzeFragmentVisitor(string tSql, string sqlHash, TSqlFragmentVisitor visitor)
        {
            var sqlFragment = SqlFragmentProvider.GetSqlFragment(tSql, sqlHash);

            sqlFragment.Accept(visitor);
        }
Ejemplo n.º 8
0
 public ScriptParser(TSqlFragmentVisitor visitor, string path)
 {
     _visitor = visitor;
     _path = path;
 }