示例#1
0
        public WizardStep()
        {
            InitializeComponent();

            CreateViewContext = new CreateViewContext();

            CreateViewContext.PropertyChanged += CreateViewContext_PropertyChanged;
        }
示例#2
0
        public static IQsiDefinitionNode VisitCreateViewStatement(CreateViewContext context)
        {
            if (!context.TryGetTokenIndex(VIEW_SYMBOL, out var index))
            {
                throw new QsiException(QsiError.Syntax);
            }

            var viewName = (ViewNameContext)context.children[index + 1];
            var viewTail = (ViewTailContext)context.children[index + 2];
            var columnInternalRefList = viewTail.columnInternalRefList();

            var node = new MySqlViewDefinitionNode
            {
                Identifier = IdentifierVisitor.VisitViewName(viewName),
            };

            if (context.viewReplaceOrAlgorithm() != null)
            {
                var replaceOrAlgorithm = context.viewReplaceOrAlgorithm();

                node.Replace = replaceOrAlgorithm.HasToken(REPLACE_SYMBOL);

                if (replaceOrAlgorithm.viewAlgorithm() != null)
                {
                    node.ViewAlgorithm.SetValue(TreeHelper.Fragment(replaceOrAlgorithm.viewAlgorithm().GetInputText()));
                }
            }

            if (context.definerClause() != null)
            {
                node.Definer = context.definerClause().user().GetInputText();
            }

            if (context.viewSuid() != null)
            {
                node.ViewSuid.SetValue(TreeHelper.Fragment(context.viewSuid().GetInputText()));
            }

            node.Columns.SetValue(columnInternalRefList == null ?
                                  TreeHelper.CreateAllColumnsDeclaration() :
                                  TableVisitor.CreateSequentialColumns(columnInternalRefList));

            node.Source.SetValue(TableVisitor.VisitViewSelect(viewTail.viewSelect()));

            return(node);
        }
示例#3
0
        public override AnalyseResult AnalyseView(string content)
        {
            SqlSyntaxError error = null;

            DdlStatementContext ddlStatement = this.GetDdlStatementContext(content, out error);

            AnalyseResult result = new AnalyseResult()
            {
                Error = error
            };

            if (!result.HasError && ddlStatement != null)
            {
                ViewScript script = new ViewScript();

                CreateViewContext view = ddlStatement.createView();

                if (view != null)
                {
                    #region Name
                    this.SetScriptName(script, view.fullId());
                    #endregion

                    #region Statement

                    foreach (var child in view.children)
                    {
                        if (child is SimpleSelectContext select)
                        {
                            script.Statements.Add(this.ParseSelectStatement(select));
                        }
                    }

                    #endregion
                }

                this.ExtractFunctions(script, ddlStatement);

                result.Script = script;
            }

            return(result);
        }
示例#4
0
 public virtual void SetDataObject(CreateViewContext data)
 {
 }