Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 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 + ".");
     }
 }
Esempio n. 3
0
        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.");
            }
        }