Пример #1
0
        public override void SetSubExpression(int index, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression)
        {
            int i = 0;

            if (fields != null)
            {
                foreach (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField field in fields)
                {
                    if (i == index)
                    {
                        field.SetExpression(expression);
                        if (expression != null)
                        {
                            expression.SetParentExpression(this);
                        }
                        return;
                    }
                    i++;
                }
            }
            if (queryEntity != null)
            {
                if (i == index)
                {
                    queryEntity = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledNameOrSelect)expression;
                    if (expression != null)
                    {
                        expression.SetParentExpression(this);
                    }
                    return;
                }
                i++;
            }
            if (joinsTables != null)
            {
                for (int ii = 0; ii < (joinsTables).Count; ii++)
                {
                    if (i == index)
                    {
                        joinsTables[ii] = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledJoinCriteria)expression;
                        if (expression != null)
                        {
                            expression.SetParentExpression(this);
                        }
                        return;
                    }
                    i++;
                }
            }
            if (groupByExpressions != null)
            {
                int size = (groupByExpressions).Count;
                for (int j = 0; j < size; j++)
                {
                    if (i == index)
                    {
                        groupByExpressions[j] = expression;
                        if (expression != null)
                        {
                            expression.SetParentExpression(this);
                        }
                        return;
                    }
                    i++;
                }
            }
            if (order != null)
            {
                int size = order.Size();
                for (int j = 0; j < size; j++)
                {
                    if (i == index)
                    {
                        order.SetOrderAt(j, expression);
                        if (expression != null)
                        {
                            expression.SetParentExpression(this);
                        }
                        return;
                    }
                    i++;
                }
            }
            if (where != null)
            {
                if (i == index)
                {
                    where = expression;
                    if (expression != null)
                    {
                        expression.SetParentExpression(this);
                    }
                }
                i++;
            }
            if (having != null)
            {
                if (i == index)
                {
                    having = expression;
                    if (expression != null)
                    {
                        expression.SetParentExpression(this);
                    }
                }
                i++;
            }
        }