Ejemplo n.º 1
0
        protected static string esArithmeticOperatorToString(tgMathmaticalExpression mathmaticalExpression, out bool isConcat)
        {
            isConcat = false;

            switch (mathmaticalExpression.Operator)
            {
            case tgArithmeticOperator.Add:

                // MEG - 4/26/08, I'm not thrilled with this check here, will revist on future release
                if (mathmaticalExpression.SelectItem1.Column.Datatype == tgSystemType.String ||
                    (mathmaticalExpression.SelectItem1.HasMathmaticalExpression && mathmaticalExpression.SelectItem1.MathmaticalExpression.LiteralType == tgSystemType.String) ||
                    (mathmaticalExpression.SelectItem1.HasMathmaticalExpression && mathmaticalExpression.SelectItem1.MathmaticalExpression.SelectItem1.Column.Datatype == tgSystemType.String) ||
                    (mathmaticalExpression.LiteralType == tgSystemType.String))
                {
                    isConcat = true;
                    return(" , ");
                }
                else
                {
                    return(" + ");
                }

            case tgArithmeticOperator.Subtract: return(" - ");

            case tgArithmeticOperator.Multiply: return(" * ");

            case tgArithmeticOperator.Divide: return(" / ");

            case tgArithmeticOperator.Modulo: return(" % ");

            default: return("");
            }
        }
Ejemplo n.º 2
0
        protected static string GetMathmaticalExpressionLiteralType(tgMathmaticalExpression mathmaticalExpression)
        {
            switch (mathmaticalExpression.LiteralType)
            {
            case tgSystemType.String:
                return(Delimiters.StringOpen + (string)mathmaticalExpression.Literal + Delimiters.StringClose);

            case tgSystemType.DateTime:
                return(Delimiters.StringOpen + ((DateTime)(mathmaticalExpression.Literal)).ToShortDateString() + Delimiters.StringClose);

            default:
                return(Convert.ToString(mathmaticalExpression.Literal));
            }
        }
Ejemplo n.º 3
0
        protected static string GetMathmaticalExpressionColumn(StandardProviderParameters std, tgDynamicQuerySerializable query, tgMathmaticalExpression mathmaticalExpression)
        {
            bool isConcat = false;

            string sql = "(";

            if (mathmaticalExpression.ItemFirst)
            {
                sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem1, true, false);
                sql += esArithmeticOperatorToString(mathmaticalExpression, out isConcat);

                if (mathmaticalExpression.SelectItem2 != null)
                {
                    sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem2, true, false);
                }
                else
                {
                    sql += GetMathmaticalExpressionLiteralType(std, mathmaticalExpression);
                }
            }
            else
            {
                if (mathmaticalExpression.SelectItem2 != null)
                {
                    sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem2, true, true);
                }
                else
                {
                    sql += GetMathmaticalExpressionLiteralType(std, mathmaticalExpression);
                }

                sql += esArithmeticOperatorToString(mathmaticalExpression, out isConcat);
                sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem1, true, false);
            }

            sql += ")";

            if (isConcat)
            {
                sql = "CONCAT(" + sql.Substring(1, sql.Length - 2) + ")";
            }

            return(sql);
        }
Ejemplo n.º 4
0
        protected static string GetMathmaticalExpressionColumn(StandardProviderParameters std, tgDynamicQuerySerializable query, tgMathmaticalExpression mathmaticalExpression)
        {
            string sql = "(";

            if (mathmaticalExpression.ItemFirst)
            {
                sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem1, true, true);
                sql += esArithmeticOperatorToString(mathmaticalExpression);

                if (mathmaticalExpression.SelectItem2 != null)
                {
                    sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem2, true, true);
                }
                else
                {
                    sql += GetMathmaticalExpressionLiteralType(mathmaticalExpression);
                }
            }
            else
            {
                if (mathmaticalExpression.SelectItem2 != null)
                {
                    sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem2, true, true);
                }
                else
                {
                    sql += GetMathmaticalExpressionLiteralType(mathmaticalExpression);
                }

                sql += esArithmeticOperatorToString(mathmaticalExpression);
                sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem1, true, true);
            }

            sql += ")";

            return(sql);
        }
Ejemplo n.º 5
0
        protected static string GetMathmaticalExpressionColumn(StandardProviderParameters std, tgDynamicQuerySerializable query, tgMathmaticalExpression mathmaticalExpression)
        {
            string sql = "(";

            if (mathmaticalExpression.ItemFirst)
            {
                sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem1, true, true);

                switch (mathmaticalExpression.Operator)
                {
                case tgArithmeticOperator.Add: sql += "+"; break;

                case tgArithmeticOperator.Subtract: sql += "-"; break;

                case tgArithmeticOperator.Multiply: sql += "*"; break;

                case tgArithmeticOperator.Divide: sql += "/"; break;

                case tgArithmeticOperator.Modulo: sql += "%"; break;
                }

                if (mathmaticalExpression.SelectItem2 != null)
                {
                    sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem2, true, true);
                }
                else
                {
                    switch (mathmaticalExpression.LiteralType)
                    {
                    case tgSystemType.String:
                        sql += Delimiters.StringOpen + (string)mathmaticalExpression.Literal + Delimiters.StringClose;
                        break;

                    case tgSystemType.DateTime:
                        sql += Delimiters.StringOpen + ((DateTime)(mathmaticalExpression.Literal)).ToShortDateString() + Delimiters.StringClose;
                        break;

                    default:
                        sql += Convert.ToString(mathmaticalExpression.Literal);
                        break;
                    }
                }
            }
            else
            {
                if (mathmaticalExpression.SelectItem2 != null)
                {
                    sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem2, true, true);
                }
                else
                {
                    switch (mathmaticalExpression.LiteralType)
                    {
                    case tgSystemType.String:
                        sql += Delimiters.StringOpen + (string)mathmaticalExpression.Literal + Delimiters.StringClose;
                        break;

                    case tgSystemType.DateTime:
                        sql += Delimiters.StringOpen + ((DateTime)(mathmaticalExpression.Literal)).ToShortDateString() + Delimiters.StringClose;
                        break;

                    default:
                        sql += Convert.ToString(mathmaticalExpression.Literal);
                        break;
                    }
                }

                switch (mathmaticalExpression.Operator)
                {
                case tgArithmeticOperator.Add: sql += "+"; break;

                case tgArithmeticOperator.Subtract: sql += "-"; break;

                case tgArithmeticOperator.Multiply: sql += "*"; break;

                case tgArithmeticOperator.Divide: sql += "/"; break;

                case tgArithmeticOperator.Modulo: sql += "%"; break;
                }

                sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem1, true, true);
            }

            sql += ")";

            return(sql);
        }
Ejemplo n.º 6
0
        protected static string GetMathmaticalExpressionColumn(StandardProviderParameters std, tgDynamicQuerySerializable query, tgMathmaticalExpression mathmaticalExpression)
        {
            bool isMod         = false;
            bool needsRounding = false;

            string sql = "(";

            if (mathmaticalExpression.ItemFirst)
            {
                sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem1, true, false);
                sql += esArithmeticOperatorToString(mathmaticalExpression, out isMod, out needsRounding);

                if (mathmaticalExpression.SelectItem2 != null)
                {
                    sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem2, true, false);
                }
                else
                {
                    sql += GetMathmaticalExpressionLiteralType(std, mathmaticalExpression);
                }
            }
            else
            {
                if (mathmaticalExpression.SelectItem2 != null)
                {
                    sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem2, true, true);
                }
                else
                {
                    sql += GetMathmaticalExpressionLiteralType(std, mathmaticalExpression);
                }

                sql += esArithmeticOperatorToString(mathmaticalExpression, out isMod, out needsRounding);
                sql += GetExpressionColumn(std, query, mathmaticalExpression.SelectItem1, true, false);
            }

            sql += ")";

            if (isMod)
            {
                sql = "MOD(" + sql.Replace("(", String.Empty).Replace(")", String.Empty) + ")";
            }
            if (needsRounding)
            {
                sql = "ROUND(" + sql + ", 10)";
            }

            return(sql);
        }