/// <summary>
        /// Used when the RangeDomain field is of Date type
        /// This function is used to construct a query string which when executed on the source Feature Class/Table will return the records that violate domain constraints.
        /// </summary>
        /// <param name="ipRangeDomain">Range domain applied to the Date type field whose attributes are getting validated</param>
        /// <param name="strFieldName">Name of the Date type field</param>
        /// <returns></returns>
        private string GetDateQueryStringForRangeDomain(IRangeDomain ipRangeDomain, string strFieldName)
        {
            if (null == ipRangeDomain || string.IsNullOrEmpty(strFieldName))
                return "";

            if (null == m_ipWorkspace)
                return "";

            string strQueryString = strFieldName + " < {0} OR " + strFieldName + " > {1}";

            string strMinValue = Convert.ToString(ipRangeDomain.MinValue);
            string strMaxValue = Convert.ToString(ipRangeDomain.MaxValue);

            DateTime dateMinValue = Convert.ToDateTime(ipRangeDomain.MinValue);
            DateTime dateMaxValue = Convert.ToDateTime(ipRangeDomain.MaxValue);

            string strYearMin = dateMinValue.Year.ToString();
            string strMonthMin = dateMinValue.Month.ToString();
            if (dateMinValue.Month < 10)
                strMonthMin = "0" + strMonthMin;

            string strDayMin = dateMinValue.Day.ToString();
            if (dateMinValue.Day < 10)
                strDayMin = "0" + strDayMin;

            string strHourMin = dateMinValue.Hour.ToString();
            if (dateMinValue.Hour < 10)
                strHourMin = "0" + strHourMin;

            string strMinMin = dateMinValue.Minute.ToString();
            if (dateMinValue.Minute < 10)
                strMinMin = "0" + strMinMin;

            string strSecMin = dateMinValue.Second.ToString();
            if (dateMinValue.Second < 10)
                strSecMin = "0" + strSecMin;

            string strYearMax = dateMaxValue.Year.ToString();
            string strMonthMax = dateMaxValue.Month.ToString();
            if (dateMaxValue.Month < 10)
                strYearMax = "0" + strYearMax;

            string strDayMax = dateMaxValue.Day.ToString();
            if (dateMaxValue.Day < 10)
                strDayMax = "0" + strDayMax;

            string strHourMax = dateMaxValue.Hour.ToString();
            if (dateMaxValue.Hour < 10)
                strHourMax = "0" + strHourMax;

            string strMinMax = dateMaxValue.Minute.ToString();
            if (dateMaxValue.Minute < 10)
                strMinMax = "0" + strMinMax;

            string strSecMax = dateMaxValue.Second.ToString();
            if (dateMaxValue.Second < 10)
                strSecMax = "0" + strSecMax;


            string strFormattedDateMin = string.Format("to_date('{0}-{1}-{2} {3}:{4}:{5}', 'dd-mm-yyyy hh24:mi:ss')", strDayMin, strMonthMin, strYearMin, strHourMin, strMinMin, strSecMin);
            string strFormattedDateMax = string.Format("to_date('{0}-{1}-{2} {3}:{4}:{5}', 'dd-mm-yyyy hh24:mi:ss')", strDayMax, strMonthMax, strYearMax, strHourMax, strMinMax, strSecMax);


            DatabaseType eDBType = GetDatabaseType(m_ipWorkspace);
            if(eDBType == DatabaseType.FGDB || eDBType == DatabaseType.SHAPEFILE)
            {
                string strNewMinValue = "date '" + strMinValue + "'";
                string strNewMaxValue = "date '" + strMaxValue + "'";
                strQueryString = string.Format(strQueryString, strNewMinValue, strNewMaxValue);
            }
            else if (eDBType == DatabaseType.MDB)
            {
                string strNewMinValue = "#" + strMinValue + "#";
                string strNewMaxValue = "#" + strMaxValue + "#";
                strQueryString = string.Format(strQueryString, strNewMinValue, strNewMaxValue);
            }
            else if (eDBType == DatabaseType.ORACLE)
            {
                string strNewMinValue = strFormattedDateMin;
                string strNewMaxValue = strFormattedDateMax;
                strQueryString = string.Format(strQueryString, strNewMinValue, strNewMaxValue);
            }
            else if (eDBType == DatabaseType.POSTGRESQL || eDBType == DatabaseType.SQLSERVER)
            {
                string strNewMinValue = "'" + strMinValue + "'";
                string strNewMaxValue = "'" + strMaxValue + "'";
                strQueryString = string.Format(strQueryString, strNewMinValue, strNewMaxValue);
            }
            else
            {
                strQueryString = "";
            }
            return strQueryString;
        }
        /// <summary>
        /// Used for RangeDomain
        /// This function is used to construct a query string which when executed on the source Feature Class/Table will return the records that violate domain constraints.
        /// </summary>
        /// <param name="ipRangeDomain">Range domain applied to the field whose attributes are getting validated</param>
        /// <param name="strFieldName">Name of the field</param>
        /// <returns></returns>
        private string GetQueryStringForRangeDomain(IRangeDomain ipRangeDomain, string strFieldName)
        {
            if (null == ipRangeDomain || string.IsNullOrEmpty(strFieldName))
                return "";

            string strQueryString = strFieldName + " < {0} OR " + strFieldName + " > {1}";

            IDomain ipDomain = ipRangeDomain as IDomain;
            if(ipDomain.FieldType == esriFieldType.esriFieldTypeDate)
            {
                strQueryString = GetDateQueryStringForRangeDomain(ipRangeDomain, strFieldName);
            }
            else if(ipDomain.FieldType == esriFieldType.esriFieldTypeDouble ||
                ipDomain.FieldType == esriFieldType.esriFieldTypeInteger ||
                ipDomain.FieldType == esriFieldType.esriFieldTypeSingle ||
                ipDomain.FieldType == esriFieldType.esriFieldTypeSmallInteger
                )
            {
                double dblMinValue = Convert.ToDouble(ipRangeDomain.MinValue);
                double dblMaxValue = Convert.ToDouble(ipRangeDomain.MaxValue);

                strQueryString = string.Format(strQueryString, dblMinValue.ToString(), dblMaxValue.ToString());
            }
            else
            {
                return "";
            }

            return strQueryString;
        }