Пример #1
0
        internal static IOpenView SelectFromSemantic(ISemantic query)
        {
            var subject = ((ISemantic)query).Subject;
            var context = new SemqContext(subject, subject.QueryRoot);

            return(((ISelect)query.Translate(context, null)).Select());
        }
Пример #2
0
 internal TopChainer(ISemantic prev, Nullable <long> top, bool isWithTies, int overloader)
     : base(((ISelect)prev.Translate(new SemqContext(((DbNode)prev).Root), null)).Select())
 {
     if (top != null)
     {
         Prev.SetTop((long)top, isWithTies);
     }
     else
     {
         SkipBuild = true;
     }
 }
Пример #3
0
        internal GroupByChainer(ISemantic prev, GroupingArgument[] columns)
            : base(prev.Translate(new SemqContext(((DbNode)prev).Root), null))
        {
            Query.Clause.GroupBy = this;

            CheckNullOrEmptyAndThrow(Argc(() => columns, columns));

            Query.AddArguments(columns);

            Build = (buildContext, buildArgs) =>
            {
                var sql = Text.GenerateSql(100)
                          .NewLine(Text.GroupBy).S()
                          .Append(GroupingArgument.Concatenate(columns, buildContext, buildArgs, false))
                          .ToString();

                TryThrow(buildContext);

                return(sql);
            };
        }
Пример #4
0
 internal SelectChainer(ISemantic prev, Column[] columns, bool isDistinct)
     : base(prev.Translate(new SemqContext(((DbNode)prev).Root), null))
 {
     _Body(columns, isDistinct);
 }
Пример #5
0
 internal TopChainer(ISemantic prev, double top, bool isWithTies)
     : base(((ISelect)prev.Translate(new SemqContext(((DbNode)prev).Root), null)).Select())
 {
     Prev.SetTop(top, isWithTies);
 }
Пример #6
0
 internal OrderByChainer(ISemantic prev, OrderingArgument[] columns)
     : base(prev.Translate(new SemqContext(((DbNode)prev).Root), null))
 {
     _Body(columns);
 }