コード例 #1
0
        public override void Accept(TSqlFragmentVisitor visitor)
        {
            visitor.ExplicitVisit(this);
            TopRowFilter?.Accept(visitor);

            foreach (var element in SelectElements)
            {
                element.Accept(visitor);
            }

            FromClause?.Accept(visitor);
            OffsetClause?.Accept(visitor);
            WhereClause?.Accept(visitor);
            GroupByClause?.Accept(visitor);
            OrderByClause?.Accept(visitor);
        }
コード例 #2
0
        public override void ToString(StringBuilder buf, int indent)
        {
            buf.Append(' ', indent);

            var longestClause = "SELECT";

            if (GroupByClause != null)
            {
                longestClause = "GROUP BY";
            }
            else if (OrderByClause != null)
            {
                longestClause = "ORDER BY";
            }

            buf.Append("SELECT");

            buf.Append(' ', longestClause.Length - "SELECT".Length + 1);

            if (UniqueRowFilter == UniqueRowFilter.Distinct)
            {
                buf.Append("DISTINCT ");
            }

            TopRowFilter?.ToString(buf, indent);

            var selectIndent = Sql150ScriptGenerator.GetCurrentIndent(buf);

            for (var i = 0; i < SelectElements.Count; i++)
            {
                if (i > 0)
                {
                    buf.Append(",\r\n");
                    buf.Append(' ', selectIndent);
                }

                SelectElements[i].ToString(buf, selectIndent);
            }

            buf.Append("\r\n");

            FromClause?.ToString(buf, indent, longestClause.Length);
            WhereClause?.ToString(buf, indent, longestClause.Length);
            GroupByClause?.ToString(buf, indent, longestClause.Length);
            OrderByClause?.ToString(buf, indent, longestClause.Length);
            OffsetClause?.ToString(buf, indent, longestClause.Length);
        }
コード例 #3
0
 public TopRowFilter(ScriptDom.TopRowFilter src) : base(src)
 {
     this.Expression = Copier.Copy <ScalarExpression>(src.Expression);
     this.Percent    = src.Percent;
     this.WithTies   = src.WithTies;
 }
コード例 #4
0
 public virtual void ExplicitVisit(TopRowFilter topRowFilter)
 {
 }