コード例 #1
0
        public static void Cast(object value, SqlTypeCode destTypeCode, int p, int s, object expected)
        {
            var srcType  = SqlTypeUtil.FromValue(value);
            var destType = PrimitiveTypes.Type(destTypeCode, new { precision = p, scale = s, maxSize = p, size = p });

            Cast(srcType, value, destType, expected);
        }
コード例 #2
0
        public static void CastToBinary(object value, SqlTypeCode typeCode, int size)
        {
            var type     = SqlTypeUtil.FromValue(value);
            var destType = PrimitiveTypes.Binary(typeCode, size);

            Assert.NotNull(type);
            Assert.IsType <SqlNumericType>(type);

            var number = (SqlNumber)SqlValueUtil.FromObject(value);

            Assert.True(type.CanCastTo(number, destType));
            var result = type.Cast(number, destType);

            Assert.IsAssignableFrom <ISqlBinary>(result);

            var binary = (ISqlBinary)result;

            var memStream = new MemoryStream();

            binary.GetInput().CopyTo(memStream);

            var bytes = memStream.ToArray();

            Assert.NotEmpty(bytes);

            var back = new SqlNumber(bytes);

            Assert.Equal(number, back);
        }
コード例 #3
0
        private static SqlObject FromObject(object value)
        {
            if (value == null)
            {
                return(SqlObject.Null);
            }

            if (value is SqlTypeCode &&
                (SqlTypeCode)value == SqlTypeCode.Unknown)
            {
                return(SqlObject.Unknown);
            }

            var sqlValue = SqlValueUtil.FromObject(value);
            var sqlType  = SqlTypeUtil.FromValue(value);

            return(new SqlObject(sqlType, sqlValue));
        }
コード例 #4
0
 public static void Unary(Func <SqlType, Func <ISqlValue, ISqlValue> > selector, object value,
                          object expected)
 {
     Unary(SqlTypeUtil.FromValue(value), selector, value, expected);
 }