Пример #1
0
        private ISqlValue ToYearToMonth(SqlString value)
        {
            SqlYearToMonth ytm;

            if (!SqlYearToMonth.TryParse(value.Value, out ytm))
            {
                return(SqlNull.Value);
            }

            return(ytm);
        }
Пример #2
0
        private static bool TryParseValue(SqlTypeCode typeCode, string s, IFormatProvider provider, out ISqlValue outValue, out Exception error)
        {
            try {
                switch (typeCode)
                {
                case SqlTypeCode.TinyInt:
                case SqlTypeCode.SmallInt:
                case SqlTypeCode.Integer:
                case SqlTypeCode.BigInt:
                case SqlTypeCode.Real:
                case SqlTypeCode.Double:
                case SqlTypeCode.Decimal:
                case SqlTypeCode.Float:
                case SqlTypeCode.Numeric:
                case SqlTypeCode.VarNumeric: {
                    error = null;
                    var result = SqlNumber.TryParse(s, provider, out var value);
                    outValue = value;

                    return(result);
                }

                case SqlTypeCode.Bit:
                case SqlTypeCode.Boolean: {
                    error = null;
                    var result = SqlBoolean.TryParse(s, out var value);
                    outValue = value;

                    return(result);
                }

                case SqlTypeCode.Date:
                case SqlTypeCode.DateTime:
                case SqlTypeCode.TimeStamp: {
                    error = null;
                    var result = SqlDateTime.TryParse(s, out var value);
                    outValue = value;

                    return(result);
                }

                case SqlTypeCode.YearToMonth: {
                    error = null;
                    var result = SqlYearToMonth.TryParse(s, out var value);
                    outValue = value;

                    return(result);
                }

                case SqlTypeCode.DayToSecond: {
                    error = null;
                    var result = SqlDayToSecond.TryParse(s, out var value);
                    outValue = value;

                    return(result);
                }

                default: {
                    error    = new FormatException($"The type {typeCode} does not support parsing");
                    outValue = null;

                    return(false);
                }
                }
            } catch (Exception ex) {
                error    = ex;
                outValue = null;

                return(false);
            }
        }