public override void BindDateTime(DbParameter parameter, object value) { if (value != null) { value = ValueRangeValidator.Correct((DateTime)value, dateTimeRange); } base.BindDateTime(parameter, value); }
public override void BindDateTimeOffset(DbParameter parameter, object value) { parameter.DbType = DbType.String; if (value == null) { parameter.Value = DBNull.Value; return; } var correctValue = ValueRangeValidator.Correct((DateTimeOffset)value, dateTimeOffsetRange); parameter.Value = correctValue.ToString(DateTimeOffsetFormat, CultureInfo.InvariantCulture); }
public override string Translate(SqlCompilerContext context, object literalValue) { var literalType = literalValue.GetType(); if (literalType == typeof(DateTimeOffset)) { var dateTimeOffset = (DateTimeOffset)literalValue; var dateTimeOffsetRange = (ValueRange <DateTimeOffset>)Driver.ServerInfo.DataTypes.DateTimeOffset.ValueRange; var newValue = ValueRangeValidator.Correct(dateTimeOffset, dateTimeOffsetRange); return(newValue.ToString(DateTimeOffsetFormatString)); } return(base.Translate(context, literalValue)); }
public override string Translate(SqlCompilerContext context, object literalValue) { var literalType = literalValue.GetType(); if (literalType == typeof(string) || literalType == typeof(char)) { return("N" + QuoteString(literalValue.ToString())); } if (literalType == typeof(TimeSpan)) { return(Convert.ToString((long)((TimeSpan)literalValue).Ticks * 100)); } if (literalType == typeof(Boolean)) { return(((bool)literalValue) ? "cast(1 as bit)" : "cast(0 as bit)"); } if (literalType == typeof(DateTime)) { var dateTime = (DateTime)literalValue; var dateTimeRange = (ValueRange <DateTime>)Driver.ServerInfo.DataTypes.DateTime.ValueRange; var newValue = ValueRangeValidator.Correct(dateTime, dateTimeRange); return(newValue.ToString(DateTimeFormatString)); } if (literalType == typeof(byte[])) { var array = (byte[])literalValue; var builder = new StringBuilder(2 * (array.Length + 1)); builder.Append("0x"); builder.AppendHexArray(array); return(builder.ToString()); } if (literalType == typeof(Guid)) { return(QuoteString(literalValue.ToString())); } if (literalType == typeof(Int64)) { return(String.Format("CAST({0} as BIGINT)", literalValue)); } return(base.Translate(context, literalValue)); }