예제 #1
0
        public SubQuery(List <FieldQuery> oFieldQueries, OperatorType oOperatorType)
        {
            switch (oFieldQueries.Capacity)
            {
            case 1:
                foreach (FieldQuery QryExp in oFieldQueries)
                {
                    _StartExpression += QryExp.Expression;
                }
                break;

            default:
                FieldQuery oLastQueryExp = oFieldQueries.Last <FieldQuery>();
                foreach (FieldQuery QryExp in oFieldQueries)
                {
                    if (!QryExp.Equals(oLastQueryExp))
                    {
                        _StartExpression += QryExp.ExpressionOpearator.StartTag;
                        _StartExpression += QryExp.Expression;
                        _EndExpression   += QryExp.ExpressionOpearator.EndTag;
                    }
                    else
                    {
                        _StartExpression += QryExp.Expression;
                    }
                }
                break;
            }
            _Expression += _StartExpression;
            _Expression += _EndExpression;
            QBOperator oOperator = new QBOperator(oOperatorType);

            _ExpressionOpearator = oOperator;
        }
예제 #2
0
        public CAMLQuery(List <SubQuery> oQueryExpressions, Nullable <int> iRowLimit, OrderByQuery oOrderByExpression)
        {
            switch (oQueryExpressions.Capacity)
            {
            case 1:
                foreach (SubQuery QryExp in oQueryExpressions)
                {
                    _StartExpression += QryExp.Expression;
                }
                break;

            default:
                SubQuery oLastQueryExp = oQueryExpressions.Last <SubQuery>();
                foreach (SubQuery QryExp in oQueryExpressions)
                {
                    if (!QryExp.Equals(oLastQueryExp))
                    {
                        _StartExpression += QryExp.ExpressionOpearator.StartTag;
                        _StartExpression += QryExp.Expression;
                        _EndExpression   += QryExp.ExpressionOpearator.EndTag;
                    }
                    else
                    {
                        _StartExpression += QryExp.Expression;
                    }
                }
                break;
            }
            _Expression     += _StartExpression;
            _Expression     += _EndExpression;
            _WhereExpression = string.Format(_Where, _Expression);

            if (oOrderByExpression == null)
            {
                _QueryExpression = string.Format(_Query, _WhereExpression);
            }
            else
            {
                _QueryExpression = string.Format("{0}{1}", _WhereExpression, oOrderByExpression.Expression);
                _QueryExpression = string.Format(_Query, _QueryExpression);
            }

            if (iRowLimit.HasValue)
            {
                _RowLimit       = string.Format(_RowLimit, iRowLimit);
                _ViewExpression = string.Format(_ViewWithRowLimit, _QueryExpression, _RowLimit);
            }
            else
            {
                _ViewExpression = string.Format(_View, _QueryExpression);
            }
        }