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; } } } } }
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); } } }