Ejemplo n.º 1
0
 public Smells()
 {
     _selectStatementProcessor  = new SelectStatementProcessor(this);
     _insertProcessor           = new InsertProcessor(this);
     _executableEntityProcessor = new ExecutableEntityProcessor(this);
     _fromProcessor             = new FromProcessor(this);
     _whereProcessor            = new WhereProcessor(this);
     _orderByProcessor          = new OrderByProcessor(this);
     _whileProcessor            = new WhileProcessor(this);
     _predicateSetProcessor     = new PredicateSetProcessor(this);
     _setProcessor           = new SetProcessor(this);
     _functionProcessor      = new FunctionProcessor(this);
     _topProcessor           = new TopProcessor(this);
     _createTableProcessor   = new CreateTableProcessor(this);
     _selectSetProcessor     = new SelectSetProcessor(this);
     _sqlDataTypeProcessor   = new SqlDataTypeProcessor(this);
     _viewStatementProcessor = new ViewStatementProcessor(this);
     _setTransactionIsolationLevelProcessor = new SetTransactionIsolationLevelProcessor(this);
     _cursorProcessor                   = new CursorProcessor(this);
     _beginEndBlockProcessor            = new BeginEndBlockProcessor(this);
     _scalarFunctionReturnTypeProcessor = new ScalarFunctionReturnTypeProcessor();
     _selectFunctionReturnTypeProcessor = new SelectFunctionReturnTypeProcessor(this);
     _functionStatementBodyProcessor    = new FunctionStatementBodyProcessor(this);
     _procedureStatementBodyProcessor   = new ProcedureStatementBodyProcessor(this);
     _ifStatementProcessor              = new IfStatementProcessor(this);
     _declareVariableProcessor          = new DeclareVariableProcessor(this);
     _tableVariableProcessor            = new TableVariableProcessor(this);
     _returnStatementProcessor          = new ReturnStatementProcessor(this);
     _columnDefinitionProcessor         = new ColumnDefinitionProcessor(this);
 }
Ejemplo n.º 2
0
 public Smells()
 {
     _selectStatementProcessor = new SelectStatementProcessor(this);
     _insertProcessor = new InsertProcessor(this);
     _executableEntityProcessor = new ExecutableEntityProcessor(this);
     _fromProcessor = new FromProcessor(this);
     _whereProcessor = new WhereProcessor(this);
     _orderByProcessor = new OrderByProcessor(this);
     _whileProcessor = new WhileProcessor(this);
     _predicateSetProcessor = new PredicateSetProcessor(this);
     _setProcessor = new SetProcessor(this);
     _functionProcessor = new FunctionProcessor(this);
     _topProcessor = new TopProcessor(this);
     _createTableProcessor = new CreateTableProcessor(this);
     _selectSetProcessor = new SelectSetProcessor(this);
     _sqlDataTypeProcessor = new SqlDataTypeProcessor(this);
     _viewStatementProcessor = new ViewStatementProcessor(this);
     _setTransactionIsolationLevelProcessor = new SetTransactionIsolationLevelProcessor(this);
     _cursorProcessor = new CursorProcessor(this);
     _beginEndBlockProcessor = new BeginEndBlockProcessor(this);
     _scalarFunctionReturnTypeProcessor = new ScalarFunctionReturnTypeProcessor();
     _selectFunctionReturnTypeProcessor = new SelectFunctionReturnTypeProcessor(this);
     _functionStatementBodyProcessor = new FunctionStatementBodyProcessor(this);
     _procedureStatementBodyProcessor = new ProcedureStatementBodyProcessor(this);
     _ifStatementProcessor = new IfStatementProcessor(this);
     _declareVariableProcessor = new DeclareVariableProcessor(this);
     _tableVariableProcessor = new TableVariableProcessor(this);
     _returnStatementProcessor = new ReturnStatementProcessor(this);
     _columnDefinitionProcessor = new ColumnDefinitionProcessor(this);
 }
Ejemplo n.º 3
0
        //void ProcessSelectElements(


        public void ProcessTsqlFragment(TSqlFragment fragment)
        {
            String stmtType = FragmentTypeParser.GetFragmentType(fragment);

            //Console.WriteLine(StmtType);
            switch (stmtType)
            {
            case "DeclareCursorStatement":
                _cursorProcessor.ProcessCursorStatement((DeclareCursorStatement)fragment);
                break;

            case "BeginEndBlockStatement":
                _beginEndBlockProcessor.ProcessBeginEndBlockStatement((BeginEndBlockStatement)fragment);
                break;

            case "CreateFunctionStatement":
            case "AlterFunctionStatement":
                _functionStatementBodyProcessor.ProcessFunctionStatementBody((FunctionStatementBody)fragment);
                break;

            case "SelectFunctionReturnType":
                _selectFunctionReturnTypeProcessor.ProcessSelectFunctionReturnType((SelectFunctionReturnType)fragment);
                return;

            case "ScalarFunctionReturnType":
                _scalarFunctionReturnTypeProcessor.ProcessScalarFunctionReturnType((ScalarFunctionReturnType)fragment);
                break;

            case "SetTransactionIsolationLevelStatement":
                _setTransactionIsolationLevelProcessor.ProcessSetTransactionIolationLevelStatement((SetTransactionIsolationLevelStatement)fragment);
                break;

            case "WhileStatement":
                _whileProcessor.ProcessWhileStatement((WhileStatement)fragment);
                break;

            case "InsertStatement":
                InsertProcessor.Process((InsertStatement)fragment);
                break;

            case "SelectStatement":
                _selectStatementProcessor.Process((SelectStatement)fragment, "RG", true);
                break;

            case "SetRowCountStatement":
                SendFeedBack(42, fragment);
                break;

            case "IfStatement":
                _ifStatementProcessor.ProcessIfStatement((IfStatement)fragment);
                break;

            case "PredicateSetStatement":
                _predicateSetProcessor.ProcessPredicateSetStatement((PredicateSetStatement)fragment);
                break;

            case "ExecuteStatement":
                ExecutableEntityProcessor.ProcessExecuteStatement((ExecuteStatement)fragment);
                break;

            case "SetIdentityInsertStatement":
                SendFeedBack(22, fragment);
                break;

            case "SetCommandStatement":
                _setProcessor.ProcessSetStatement((SetCommandStatement)fragment);
                break;

            case "CreateTableStatement":
                _createTableProcessor.ProcessCreateTable((CreateTableStatement)fragment);
                break;

            case "CreateProcedureStatement":
            case "AlterProcedureStatement":
                ProcedureStatementBodyProcessor.ProcessProcedureStatementBody((ProcedureStatementBody)fragment);
                _assignmentList.Clear();
                break;

            case "CreateViewStatement":
            case "AlterViewStatement":
                _viewStatementProcessor.ProcessViewStatementBody((ViewStatementBody)fragment);
                break;

            case "TSqlBatch":
                var batch = (TSqlBatch)fragment;
                foreach (TSqlStatement innerFragment in batch.Statements)
                {
                    ProcessTsqlFragment(innerFragment);
                }
                break;

            case "TSqlScript":
                var script = (TSqlScript)fragment;
                foreach (TSqlBatch innerBatch in script.Batches)
                {
                    ProcessTsqlFragment(innerBatch);
                }
                break;

            case "TryCatchStatement":
                var trycatch = (TryCatchStatement)fragment;

                foreach (TSqlStatement innerStmt in trycatch.TryStatements.Statements)
                {
                    ProcessTsqlFragment(innerStmt);
                }

                foreach (TSqlStatement innerStmt in trycatch.CatchStatements.Statements)
                {
                    ProcessTsqlFragment(innerStmt);
                }
                break;

            case "BooleanParenthesisExpression":
                var expression = (BooleanParenthesisExpression)fragment;
                ProcessTsqlFragment(expression.Expression);
                break;

            case "BooleanComparisonExpression":
                var bcExpression = (BooleanComparisonExpression)fragment;
                ProcessTsqlFragment(bcExpression.FirstExpression);
                ProcessTsqlFragment(bcExpression.SecondExpression);
                break;

            case "ScalarSubquery":
                var scalarSubquery = (ScalarSubquery)fragment;
                ProcessQueryExpression(scalarSubquery.QueryExpression, "RG");
                break;

            case "ReturnStatement":
                _returnStatementProcessor.ProcessReturnStatement((ReturnStatement)fragment);
                break;

            case "IntegerLiteral":
                break;

            case "DeclareVariableStatement":
                _declareVariableProcessor.ProcessDeclareVariableStatement((DeclareVariableStatement)fragment);
                break;

            case "DeclareVariableElement":
                _declareVariableProcessor.ProcessDeclareVariableElement((DeclareVariableElement)fragment);
                break;

            case "PrintStatement":
                break;

            case "SqlDataTypeReference":
                _sqlDataTypeProcessor.ProcessSqlDataTypeReference((SqlDataTypeReference)fragment);
                break;

            case "DeclareTableVariableStatement":
                _tableVariableProcessor.ProcessTableVariableStatement((DeclareTableVariableStatement)fragment);
                break;

            case "TableValuedFunctionReturnType":
                _tableVariableProcessor.ProcessTableValuedFunctionReturnType((TableValuedFunctionReturnType)fragment);
                break;

            case "DeclareTableVariableBody":
                _tableVariableProcessor.ProcessTableVariableBody((DeclareTableVariableBody)fragment);
                break;

            case "VariableReference":
                //ProcessVariableReference((VariableReference)Fragment);
                break;

            case "ExistsPredicate":
                _tableVariableProcessor.ProcessExistsPredicate((ExistsPredicate)fragment);
                break;

            case "ColumnDefinition":
                _columnDefinitionProcessor.ProcessColumnDefinition((ColumnDefinition)fragment);
                break;
            }
        }