Beispiel #1
0
 public void Visit(SqlRound node)
 {
     if (!node.Argument.IsNullReference())
     {
         Visit(node.Argument);
     }
     if (!node.Length.IsNullReference())
     {
         Visit(node.Length);
     }
 }
Beispiel #2
0
        public override void Visit(SqlRound node)
        {
            SqlExpression result;
            var           shouldCastToDecimal = node.Type == TypeCode.Decimal;

            switch (node.Mode)
            {
            case MidpointRounding.ToEven:
                result = node.Length.IsNullReference()
          ? BankersRound(node.Argument, shouldCastToDecimal)
          : BankersRound(node.Argument, node.Length, shouldCastToDecimal);
                break;

            case MidpointRounding.AwayFromZero:
                result = node.Length.IsNullReference()
          ? RegularRound(node.Argument, shouldCastToDecimal)
          : RegularRound(node.Argument, node.Length, shouldCastToDecimal);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            result.AcceptVisitor(this);
        }
 public virtual void Visit(SqlRound node)
 {
     VisitInternal(node.Argument);
     VisitInternal(node.Length);
 }