protected override void ApplyTypeRestrictions(BedValueHolder holder, DbTypeBase type, ILogger logger) { base.ApplyTypeRestrictions(holder, type, logger); var dtype = type as DbTypeDatetime; var htype = holder.GetFieldType(); if (dtype != null && htype != TypeStorage.DateTime) { var val = holder.GetDateTimeValue(); if (dtype.GetSpecificAttribute("mssql", "subtype") == "datetime2" && m_dialect.Version.Is_2008()) { val.MakeRestriction(m_mindatetime2, m_maxdatetime2); } else if (dtype.GetSpecificAttribute("mssql", "subtype") == "smalldatetime") { val.MakeRestriction(m_minsmalldatetime, m_maxsmalldatetime); } else if (dtype.SubType == DbDatetimeSubType.Time && m_dialect.Version.Is_2008()) { holder.SetString(val.TimePart.ToStringNormalized()); return; } else { val.MakeRestriction(m_mindatetime, m_maxdatetime); } holder.SetDateTime(val.AsDateTime); } }
protected override void ApplyTypeRestrictions(BedValueHolder holder, DbTypeBase type, ILogger logger) { var htype = holder.GetFieldType(); if (htype == TypeStorage.String) { return; // skip string restrictions } base.ApplyTypeRestrictions(holder, type, logger); }
public static SynFootprint FromReader(IBedRecord record, int keylen, BedValueHolder holder, BedValueConvertor conv, IDataSynAdapter adapter) { var res = new SynFootprint(); res.KeyData = new string[keylen]; for (int i = 0; i < keylen; i++) { record.ReadValue(i); conv.ConvertValue(record, TypeStorage.String, holder); res.KeyData[i] = holder.GetString(); } record.ReadValue(keylen); res.Hash = adapter.ReadHash(record, conv, holder); return(res); }
protected override void ApplyTypeRestrictions(BedValueHolder holder, DbTypeBase type, ILogger logger) { var htype = holder.GetFieldType(); var dtype = type as DbTypeDatetime; if (dtype != null && type.GetSpecificAttribute("mysql", "subtype") == "timestamp" && htype.IsDateRelated()) { var val = holder.GetDateTimeValue(); val.MakeRestriction(m_mintimestamp, m_maxtimestamp); val.MakeValidDate(); holder.SetDateTimeEx(val); } base.ApplyTypeRestrictions(holder, type, logger); }
private IEnumerable <IBedRecord> EnumUpgradeGridRows(GridTable srcgrid, GridTable dstgrid, ITableStructure ts) { var ensrc = srcgrid.EnumRows(new TableDataSetProperties()).GetEnumerator(); var endst = dstgrid.EnumRows(new TableDataSetProperties()).GetEnumerator(); var holder = new BedValueHolder(); for (; ;) { if (!ensrc.MoveNext()) { break; } if (!endst.MoveNext()) { break; } var newrec = new ArrayDataRecord(ts); for (int i = 0; i < m_srcInfo.KeyCols.Length; i++) { newrec.SeekValue(i); ensrc.Current.ReadValue(i); ensrc.Current.WriteTo(newrec); } for (int i = 0; i < m_srcInfo.DataCols.Length; i++) { newrec.SeekValue(m_srcInfo.KeyCols.Length + i); ensrc.Current.ReadValue(m_srcInfo.KeyCols.Length + i); ensrc.Current.WriteTo(newrec); } for (int i = 0; i < m_dstInfo.DataCols.Length; i++) { newrec.SeekValue(m_srcInfo.KeyCols.Length + m_srcInfo.DataCols.Length + i); endst.Current.ReadValue(m_srcInfo.KeyCols.Length + i); endst.Current.WriteTo(newrec); } yield return(newrec); } }