protected override GDAParameter CreateParameter(string a, object b)
        {
            if (b is QueryInfo || b is Queryable)
            {
                b = null;
            }
            if (b is DateTime)
            {
                var c = (DateTime)b;
                if (c.Kind == DateTimeKind.Unspecified)
                {
                    b = new DateTime(c.Year, c.Month, c.Day, c.Hour, c.Minute, c.Second, c.Millisecond, DateTimeKind.Local);
                }
            }
            if (b != null && b.GetType() == typeof(DateTimeOffset))
            {
                var c = (DateTimeOffset)b;
                                #if UNMANAGED
#elif DEVART
                b = new Devart.Data.Oracle.OracleTimeStamp(c.DateTime, c.Offset.ToString());
#else
                b = new global::Oracle.ManagedDataAccess.Types.OracleTimeStampTZ(c.DateTime, c.Offset.ToString());
                                #endif
                GDAParameter d = new GDAParameter(a, b);
                d.DbType = System.Data.DbType.DateTime;
                return(d);
            }
            else
            {
                return(new GDAParameter(a, b));
            }
        }
        /// <summary>
        /// Cria um parâmetro para a consulta.
        /// </summary>
        /// <param name="name">Nome do parâmetro.</param>
        /// <param name="value">Valor do parâmetro.</param>
        /// <returns>Objeto do tipo <see cref="GDAParameter"/>.</returns>
        protected override GDAParameter CreateParameter(string name, object value)
        {
            if (value is QueryInfo || value is Queryable)
            {
                value = null;
            }
            if (value is DateTime)
            {
                var date = (DateTime)value;
                if (date.Kind == DateTimeKind.Unspecified)
                {
                    value = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, date.Millisecond, DateTimeKind.Local);
                }
            }
            if (value != null && value.GetType() == typeof(DateTimeOffset))
            {
                var date = (DateTimeOffset)value;
                                #if UNMANAGED
#elif DEVART
                value = new Devart.Data.Oracle.OracleTimeStamp(date.DateTime, date.Offset.ToString());
#else
                value = new global::Oracle.ManagedDataAccess.Types.OracleTimeStampTZ(date.DateTime, date.Offset.ToString());
                                #endif
                GDAParameter parameter = new GDAParameter(name, value);
                parameter.DbType = System.Data.DbType.DateTime;
                return(parameter);
            }
            else
            {
                return(new GDAParameter(name, value));
            }
        }
示例#3
0
 public static DateTimeOffset ToDateTimeOffset(this Devart.Data.Oracle.OracleTimeStamp ts)
 {
     try
     {
         return(new DateTimeOffset(ts.Value, ts.TimeZoneOffset));
     }
     catch (Exception)            {
         throw;
     }
 }