Exemple #1
0
        public static string ToString(Operation_T Op)
        {
            switch (Op)
            {
            case Operation_T.CREATE_DATABASE:
                return("CREATE DATABASE");

            case Operation_T.CREATE_TABLE:
                return("CREATE TABLE");

            case Operation_T.DELETE:
                return("DELETE FROM {0} WHERE {1}");

            case Operation_T.DROP_TABLE:
                return("DROP TABLE {0}");

            case Operation_T.INSERT:
                return("INSERT INTO {0} [{1}] VALUES ({2})");

            case Operation_T.SELECT:
                return("SELECT {0} FROM {1}");

            case Operation_T.UPDATE:
                return("UPDATE {0} SET {1} WHERE {2}");

            default:
                return("");
            }
        }
        static Arithmetics()
        {
            MINUS_ONE = (T)System.Convert.ChangeType(-1, typeof(T));
            ZERO      = (T)System.Convert.ChangeType(0, typeof(T));
            ONE       = (T)System.Convert.ChangeType(1, typeof(T));
            TWO       = (T)System.Convert.ChangeType(2, typeof(T));
            THREE     = (T)System.Convert.ChangeType(3, typeof(T));



            DecimalEpsilon          = new decimal(1, 0, 0, false, 27);
            DecimalPositiveInfinity = 1m / DecimalEpsilon;
            DecimalNegativeInfinity = -1m / DecimalEpsilon;

            System.Linq.Expressions.ParameterExpression paramA =
                System.Linq.Expressions.Expression.Parameter(typeof(T), "a");
            System.Linq.Expressions.ParameterExpression paramB =
                System.Linq.Expressions.Expression.Parameter(typeof(T), "b");

            // Add the parameters together
            System.Linq.Expressions.BinaryExpression addBody =
                System.Linq.Expressions.Expression.Add(paramA, paramB);

            // a-b
            System.Linq.Expressions.BinaryExpression subtractBody =
                System.Linq.Expressions.Expression.Subtract(paramA, paramB);

            // a*b
            System.Linq.Expressions.BinaryExpression multiplyBody =
                System.Linq.Expressions.Expression.Multiply(paramA, paramB);

            // a/b
            System.Linq.Expressions.BinaryExpression divideBody =
                System.Linq.Expressions.Expression.Divide(paramA, paramB);

            // a%b
            System.Linq.Expressions.BinaryExpression moduloBody =
                System.Linq.Expressions.Expression.Modulo(paramA, paramB);

            Add              = System.Linq.Expressions.Expression.Lambda <Operation_T>(addBody, paramA, paramB).Compile();
            Subtract         = System.Linq.Expressions.Expression.Lambda <Operation_T>(subtractBody, paramA, paramB).Compile();
            MultiplyInternal = System.Linq.Expressions.Expression.Lambda <Operation_T>(multiplyBody, paramA, paramB).Compile();
            Divide           = System.Linq.Expressions.Expression.Lambda <Operation_T>(divideBody, paramA, paramB).Compile();
            Mod              = System.Linq.Expressions.Expression.Lambda <Operation_T>(moduloBody, paramA, paramB).Compile();
        }