示例#1
0
        protected virtual void ApplyTypeRestrictions(CdlValueHolder holder, DbTypeBase type)
        {
            var stype = type as DbTypeString;
            var htype = holder.GetFieldType();
            if (stype != null && htype == TypeStorage.String)
            {
                string sval = holder.GetString();
                if (stype.Length > 0 && sval.Length > stype.Length)
                {
                    sval = sval.Substring(0, stype.Length);
                    holder.SetString(sval);
                }
            }
            if (htype.IsDateRelated() && !m_allowZeroInDate)
            {
                var dt = holder.GetDateTimeValue();

                if (dt.MakeValidDate())
                {
                    m_holder.SetDateTimeEx(dt);
                }
            }
        }
示例#2
0
        protected override void ApplyTypeRestrictions(CdlValueHolder holder, DbTypeBase type)
        {
            base.ApplyTypeRestrictions(holder, type);

            var dtt = type as DbTypeDatetime;

            if (dtt != null)
            {
                if (!dtt.ExtendedPrecision)
                {
                    var htype = holder.GetFieldType();
                    if (htype.IsDateRelated())
                    {
                        var dt = holder.GetDateTimeValue();
                        dt.Nanosecond = dt.Nanosecond / 1000000 * 1000000;
                        switch (htype)
                        {
                        case TypeStorage.DateEx:
                            holder.SetDateEx(dt.DatePart);
                            break;

                        case TypeStorage.TimeEx:
                            holder.SetTimeEx(dt.TimePart);
                            break;

                        case TypeStorage.DateTimeEx:
                            holder.SetDateTimeEx(dt);
                            break;

                        case TypeStorage.DateTime:
                            holder.SetDateTime(dt.AsDateTime);
                            break;
                        }
                    }
                }
            }
        }