Example #1
0
        /// <summary>
        /// Populate the specified <see cref="DbParameter" /> with its type.
        /// </summary>
        /// <remarks>
        /// This implementation makes sure that GUIDs are passed as strings
        /// and ref cursors are added.
        /// </remarks>
        /// <param name="dbParameter"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        protected override void PopulateType(DbParameter dbParameter, AdoDbType type)
        {
            OracleParameter oracleParameter = dbParameter as OracleParameter;
            if (oracleParameter == null)
                throw new ArgumentException(RM.Get_Error_OracleParameterExpected());

            if (type == AdoDbType.Guid)
            {
                oracleParameter.DbType = DbType.String;
                oracleParameter.Size = 36;
            }
            else if (type == AdoDbType.Cursor)
                oracleParameter.OracleType = OracleType.Cursor;
            else if (type == AdoDbType.Text)
                oracleParameter.OracleType = OracleType.NClob;
            else
                base.PopulateType(dbParameter, type);
        }
Example #2
0
 /// <summary>
 /// Thin wrapper around
 /// <see cref="IAdoResourceProvider.AddParameter(DbCommand,String,object,AdoDbType,ParameterDirection)" />
 /// that provides the connection to use for derived implementations.
 /// </summary>
 protected DbParameter AddParameter(DbCommand dbCommand, String name, object value, AdoDbType type, ParameterDirection direction)
 {
     return(_resourceProvider.AddParameter(dbCommand, name, value, type, direction));
 }
Example #3
0
            /// <summary>
            /// Add a parameter initialised with the type and direction to the
            /// specified <see cref="DbCommand" />.
            /// </summary>
            public DbParameter AddParameter(DbCommand dbCommand, String name, AdoDbType type, ParameterDirection direction)
            {
                if (innerResourceProvider == null)
                    throw new NotSupportedException(RM.Get_Error_ResourceProviderNotInitialised());

                return innerResourceProvider.AddParameter(dbCommand, name, type, direction);
            }
Example #4
0
 protected virtual void PopulateType(DbParameter dbParameter, AdoDbType type)
 {
     switch (type)
     {
         case AdoDbType.AnsiString:
             dbParameter.DbType = DbType.AnsiString;
             break;
         case AdoDbType.Binary:
             dbParameter.DbType = DbType.Binary;
             break;
         case AdoDbType.Boolean:
             dbParameter.DbType = DbType.Boolean;
             break;
         case AdoDbType.Byte:
             dbParameter.DbType = DbType.Byte;
             break;
         case AdoDbType.Currency:
             dbParameter.DbType = DbType.Currency;
             break;
         case AdoDbType.Date:
             dbParameter.DbType = DbType.Date;
             break;
         case AdoDbType.DateTime:
             dbParameter.DbType = DbType.DateTime;
             break;
         case AdoDbType.Decimal:
             dbParameter.DbType = DbType.Decimal;
             break;
         case AdoDbType.Double:
             dbParameter.DbType = DbType.Double;
             break;
         case AdoDbType.Guid:
             dbParameter.DbType = DbType.Guid;
             break;
         case AdoDbType.Int16:
             dbParameter.DbType = DbType.Int16;
             break;
         case AdoDbType.Int32:
             dbParameter.DbType = DbType.Int32;
             break;
         case AdoDbType.Int64:
             dbParameter.DbType = DbType.Int64;
             break;
         case AdoDbType.Object:
             dbParameter.DbType = DbType.Object;
             break;
         case AdoDbType.SByte:
             dbParameter.DbType = DbType.SByte;
             break;
         case AdoDbType.Single:
             dbParameter.DbType = DbType.Single;
             break;
         case AdoDbType.String:
             dbParameter.DbType = DbType.String;
             break;
         case AdoDbType.Text :
             dbParameter.DbType = DbType.String;
             break;
         case AdoDbType.Time:
             dbParameter.DbType = DbType.Time;
             break;
         case AdoDbType.UInt16:
             dbParameter.DbType = DbType.UInt16;
             break;
         case AdoDbType.UInt32:
             dbParameter.DbType = DbType.UInt32;
             break;
         case AdoDbType.UInt64:
             dbParameter.DbType = DbType.UInt64;
             break;
         case AdoDbType.VarNumeric:
             dbParameter.DbType = DbType.VarNumeric;
             break;
         case AdoDbType.AnsiStringFixedLength:
             dbParameter.DbType = DbType.AnsiStringFixedLength;
             break;
         case AdoDbType.StringFixedLength:
             dbParameter.DbType = DbType.StringFixedLength;
             break;
         case AdoDbType.Xml:
             dbParameter.DbType = DbType.Xml;
             break;
     }
 }
Example #5
0
 /// <summary>
 /// Add a parameter initialised with the type and direction to the
 /// specified <see cref="DbCommand" />.
 /// </summary>
 /// <param name="dbCommand"></param>
 /// <param name="name"></param>
 /// <param name="type"></param>
 /// <param name="direction"></param>
 /// <returns></returns>
 public virtual DbParameter AddParameter(DbCommand dbCommand, String name, AdoDbType type, ParameterDirection direction)
 {
     return AddParameter(dbCommand, name, null, type, direction);
 }
Example #6
0
        /// <summary>
        /// Add a parameter initialised with the value, type and direction to 
        /// the specified <see cref="DbCommand" />.
        /// </summary>
        /// <param name="dbCommand"></param>
        /// <param name="name"></param>
        /// <param name="value"></param>
        /// <param name="type"></param>
        /// <param name="direction"></param>
        /// <returns></returns>
        public virtual DbParameter AddParameter(DbCommand dbCommand, String name, Object value, AdoDbType type, ParameterDirection direction)
        {
            if (dbCommand == null)
                throw new ArgumentNullException("dbCommand");

            if (String.IsNullOrEmpty(name))
                throw new ArgumentNullException("name");

            if (!SupportCursors && type == AdoDbType.Cursor)
                return null;

            DbParameter dbParameter = dbProviderFactory.CreateParameter();

            dbParameter.ParameterName = name;
            dbParameter.Direction = direction;

            PopulateType(dbParameter, type);
            PopulateValue(dbParameter, value);

            dbCommand.Parameters.Add(dbParameter);

            return dbParameter;
        }
Example #7
0
 /// <summary>
 /// Add an input parameter initialised with the value and type to the 
 /// specified <see cref="DbCommand" />.
 /// </summary>
 /// <param name="dbCommand"></param>
 /// <param name="name"></param>
 /// <param name="value"></param>
 /// <param name="type"></param>
 public virtual DbParameter AddParameter(DbCommand dbCommand, String name, Object value, AdoDbType type)
 {
     return AddParameter(dbCommand, name, value, type, ParameterDirection.Input);
 }
 /// <summary>
 /// Thin wrapper around
 /// <see cref="IAdoResourceProvider.AddParameter(DbCommand,string,AdoDbType,ParameterDirection)" />
 /// that provides the connection to use for derived implementations.
 /// </summary>
 protected DbParameter AddParameter(DbCommand dbCommand, string name, AdoDbType type, ParameterDirection direction)
 {
     return resourceProvider.AddParameter(dbCommand, name, type, direction);
 }
 /// <summary>
 /// Thin wrapper around
 /// <see cref="IAdoResourceProvider.AddParameter(DbCommand,string,object,AdoDbType)" />
 /// that provides the connection to use for derived implementations.
 /// </summary>
 protected DbParameter AddParameter(DbCommand dbCommand, string name, object value, AdoDbType type)
 {
     return resourceProvider.AddParameter(dbCommand, name, value, type);
 }
Example #10
0
            /// <summary>
            /// Add a parameter initialised with the value, type and direction to
            /// the specified <see cref="DbCommand" />.
            /// </summary>
            public DbParameter AddParameter(DbCommand dbCommand, String name, Object value, AdoDbType type, ParameterDirection direction)
            {
                if (innerResourceProvider == null)
                {
                    throw new NotSupportedException(RM.Get_Error_ResourceProviderNotInitialised());
                }

                return(innerResourceProvider.AddParameter(dbCommand, name, value, type, direction));
            }
 /// <summary>
 /// Thin wrapper around
 /// <see cref="IAdoResourceProvider.AddParameter(DbCommand,string,object,AdoDbType)" />
 /// that provides the connection to use for derived implementations.
 /// </summary>
 protected DbParameter AddParameter(DbCommand dbCommand, string name, object value, AdoDbType type)
 {
     return(resourceProvider.AddParameter(dbCommand, name, value, type));
 }
Example #12
0
        /// <summary>
        /// Populate the specified <see cref="DbParameter" /> with its type.
        /// </summary>
        /// <remarks>
        /// Derived classes can use this as an opportunity to replace the type
        /// with something more appropriate to the underlying provider.
        /// </remarks>
        /// <param name="dbParameter"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        protected virtual void PopulateType(DbParameter dbParameter, AdoDbType type)
        {
            switch (type)
            {
            case AdoDbType.AnsiString:
                dbParameter.DbType = DbType.AnsiString;
                break;

            case AdoDbType.Binary:
                dbParameter.DbType = DbType.Binary;
                break;

            case AdoDbType.Boolean:
                dbParameter.DbType = DbType.Boolean;
                break;

            case AdoDbType.Byte:
                dbParameter.DbType = DbType.Byte;
                break;

            case AdoDbType.Currency:
                dbParameter.DbType = DbType.Currency;
                break;

            case AdoDbType.Date:
                dbParameter.DbType = DbType.Date;
                break;

            case AdoDbType.DateTime:
                dbParameter.DbType = DbType.DateTime;
                break;

            case AdoDbType.Decimal:
                dbParameter.DbType = DbType.Decimal;
                break;

            case AdoDbType.Double:
                dbParameter.DbType = DbType.Double;
                break;

            case AdoDbType.Guid:
                dbParameter.DbType = DbType.Guid;
                break;

            case AdoDbType.Int16:
                dbParameter.DbType = DbType.Int16;
                break;

            case AdoDbType.Int32:
                dbParameter.DbType = DbType.Int32;
                break;

            case AdoDbType.Int64:
                dbParameter.DbType = DbType.Int64;
                break;

            case AdoDbType.Object:
                dbParameter.DbType = DbType.Object;
                break;

            case AdoDbType.SByte:
                dbParameter.DbType = DbType.SByte;
                break;

            case AdoDbType.Single:
                dbParameter.DbType = DbType.Single;
                break;

            case AdoDbType.String:
                dbParameter.DbType = DbType.String;
                break;

            case AdoDbType.Time:
                dbParameter.DbType = DbType.Time;
                break;

            case AdoDbType.UInt16:
                dbParameter.DbType = DbType.UInt16;
                break;

            case AdoDbType.UInt32:
                dbParameter.DbType = DbType.UInt32;
                break;

            case AdoDbType.UInt64:
                dbParameter.DbType = DbType.UInt64;
                break;

            case AdoDbType.VarNumeric:
                dbParameter.DbType = DbType.VarNumeric;
                break;

            case AdoDbType.AnsiStringFixedLength:
                dbParameter.DbType = DbType.AnsiStringFixedLength;
                break;

            case AdoDbType.StringFixedLength:
                dbParameter.DbType = DbType.StringFixedLength;
                break;

            case AdoDbType.Xml:
                dbParameter.DbType = DbType.Xml;
                break;
            }
        }
Example #13
0
 /// <summary>
 /// Add a parameter initialised with the type and direction to the
 /// specified <see cref="DbCommand" />.
 /// </summary>
 /// <param name="dbCommand"></param>
 /// <param name="name"></param>
 /// <param name="type"></param>
 /// <param name="direction"></param>
 /// <returns></returns>
 public virtual DbParameter AddParameter(DbCommand dbCommand, string name, AdoDbType type, ParameterDirection direction)
 {
     return(AddParameter(dbCommand, name, null, type, direction));
 }
Example #14
0
        /// <summary>
        /// Add a parameter initialised with the value, type and direction to
        /// the specified <see cref="DbCommand" />.
        /// </summary>
        /// <param name="dbCommand"></param>
        /// <param name="name"></param>
        /// <param name="value"></param>
        /// <param name="type"></param>
        /// <param name="direction"></param>
        /// <returns></returns>
        public virtual DbParameter AddParameter(DbCommand dbCommand, string name, object value, AdoDbType type, ParameterDirection direction)
        {
            if (!SupportCursors && type == AdoDbType.Cursor)
            {
                return(null);
            }

            DbParameter dbParameter = dbProviderFactory.CreateParameter();

            dbParameter.ParameterName = name;
            dbParameter.Direction     = direction;

            PopulateValue(dbParameter, value);
            PopulateType(dbParameter, type);

            dbCommand.Parameters.Add(dbParameter);

            return(dbParameter);
        }
Example #15
0
 /// <summary>
 /// Add an input parameter initialised with the value and type to the
 /// specified <see cref="DbCommand" />.
 /// </summary>
 /// <param name="dbCommand"></param>
 /// <param name="name"></param>
 /// <param name="value"></param>
 /// <param name="type"></param>
 public virtual DbParameter AddParameter(DbCommand dbCommand, string name, object value, AdoDbType type)
 {
     return(AddParameter(dbCommand, name, value, type, ParameterDirection.Input));
 }
Example #16
0
        /// <summary>
        /// Add a parameter initialised with the value, type and direction to
        /// the specified <see cref="DbCommand" />.
        /// </summary>
        /// <param name="dbCommand"></param>
        /// <param name="name"></param>
        /// <param name="value"></param>
        /// <param name="type"></param>
        /// <param name="direction"></param>
        /// <returns></returns>
        public virtual DbParameter AddParameter(DbCommand dbCommand, String name, Object value, AdoDbType type, ParameterDirection direction)
        {
            if (dbCommand == null)
            {
                throw new ArgumentNullException("dbCommand");
            }

            if (String.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException("name");
            }

            if (!SupportCursors && type == AdoDbType.Cursor)
            {
                return(null);
            }

            DbParameter dbParameter = dbProviderFactory.CreateParameter();

            dbParameter.ParameterName = name;
            dbParameter.Direction     = direction;

            PopulateType(dbParameter, type);
            PopulateValue(dbParameter, value);

            dbCommand.Parameters.Add(dbParameter);

            return(dbParameter);
        }