public SQLDTIntervalImpl(SQLVendorImpl vendor, IntervalDataTypes startFieldType, Int32?startFieldPrecision, IntervalDataTypes?endFieldType, Int32?secondFracs) : base(vendor) { this._startFieldType = startFieldType; this._startFieldPrecision = startFieldPrecision; this._endFieldType = endFieldType; this._secondFracs = secondFracs; }
public virtual SQLDTInterval YearMonthInterval(IntervalDataTypes startField, Int32?startFieldPrecision = null, IntervalDataTypes?endField = null) { if ((IntervalDataTypes.Year == startField || IntervalDataTypes.Month == startField) && (!endField.HasValue || IntervalDataTypes.Year == endField.Value && IntervalDataTypes.Month == endField.Value)) { return(new SQLDTIntervalImpl(this.vendor, startField, startFieldPrecision, endField, null)); } else { throw new ArgumentException("Interval data types must be either " + IntervalDataTypes.Year + " or " + IntervalDataTypes.Month + "."); } }
public virtual SQLDTInterval DayTimeInterval(IntervalDataTypes startField, Int32?startFieldPrcision = null, IntervalDataTypes?endField = null, Int32?secondFracs = null) { if (IntervalDataTypes.Year != startField && IntervalDataTypes.Month != startField && (!endField.HasValue || (IntervalDataTypes.Year != endField.Value && IntervalDataTypes.Month != endField.Value && IntervalDataTypes.Second != startField)) ) { if (secondFracs.HasValue && (IntervalDataTypes.Second != startField || (endField.HasValue && IntervalDataTypes.Second != endField.Value))) { // Trying to set second fractionals, even when not needed secondFracs = null; } if (!endField.HasValue && secondFracs.HasValue && !startFieldPrcision.HasValue) { throw new ArgumentException("When specifying second fracs for single day-time intervals, the start field precision must be specified also."); } return(new SQLDTIntervalImpl(this.vendor, startField, startFieldPrcision, endField, secondFracs)); } else { throw new ArgumentException("Interval data types must be either " + IntervalDataTypes.Day + ", " + IntervalDataTypes.Hour + ", " + IntervalDataTypes.Minute + ", or " + IntervalDataTypes.Second + ". For single day-time intervals, the start field must not be " + IntervalDataTypes.Second + " if end field is non-null."); } }