/// <summary>Convierte el valor en el tipo indicado</summary> public static Expression Convert(dbTyp type, Expression expr, params int[] ranges) { Expression exprType = (Expression)type.ToString().ToUpper(); if (ranges.Length > 0) { exprType = exprType.Operate(dbOpe.In, ranges[0].ToString()); } exprType = exprType.Operate(dbOpe.Comma, expr); return(exprType.Fun(dbFun.Convert)); }
/// <summary>Convierte el valor en el tipo indicado</summary> public static Expression Cast(Expression expr, dbTyp type, params int[] ranges) { expr = expr.Operate(dbOpe.As, type.ToString().ToUpper()); if (ranges.Length > 0) { Expression inExpr = (Expression)ranges[0]; for (int i = 1; i < ranges.Length; i++) { inExpr = inExpr.Operate(dbOpe.Comma, ranges[i].ToString()); } expr = expr.Operate(dbOpe.In, inExpr); } return(expr.Fun(dbFun.Cast)); }
/// <summary>Converts value into selected data type</summary> private static Expression Cast(Expression expr, dbTyp type, dbSiz size, params int[] ranges) { expr = expr.Operate(dbOpe.As, type.ToString().ToUpper()); if (size == dbSiz.Max) { Expression inExpr = (Expression)dbSiz.Max.ToString().ToUpper(); expr = expr.Operate(dbOpe.In, inExpr); return(expr.Fun(dbFun.Cast)); } else { if (ranges.Length > 0) { Expression inExpr = (Expression)ranges[0]; for (int i = 1; i < ranges.Length; i++) { inExpr = inExpr.Operate(dbOpe.Comma, ranges[i].ToString()); } expr = expr.Operate(dbOpe.In, inExpr); } } return(expr.Fun(dbFun.Cast)); }