Example #1
0
        public override IDbCommand CargarParametros(ref IDbCommand comando)
        {
            if (comando == null)
            {
                throw new NullReferenceException("¡El comando no puede ser nulo!");
            }

            try
            {
                foreach (ParametroSql parametro in Parametros.Parametros)
                {
                    IDbDataParameter param = comando.CreateParameter();

                    if (!parametro.Tipo.HasValue)
                    {
                        if (parametro.Valor != null)
                        {
                            if (parametro.Valor.GetType() != typeof(DataTable))
                            {
                                parametro.Tipo = Mapeador.ObtenerTipoDestino(parametro.Valor.GetType());
                            }
                        }
                        else
                        {
                            continue;
                        }
                    }

                    if (parametro.Valor.GetType() != typeof(DataTable))
                    {
                        param.DbType = parametro.Tipo.Value;
                    }
                    else
                    {
                        (param as SqlParameter).SqlDbType = SqlDbType.Structured;
                    }
                    param.Direction     = ParameterDirection.Input;
                    param.Value         = parametro.Valor;
                    param.ParameterName = parametro.Nombre;

                    comando.Parameters.Add(param);
                }
                Consulta = CreadorQuery.ObtenerQuery(this);
                return(comando);
            }
            catch (Exception e)
            {
                throw new EjecutarException("¡Error al cargar los parámetros de entrada del SP!", e);
            }
        }
Example #2
0
 /// <summary>
 /// Crea un comando para la conexión actual. Además de establecer el tipo de comando como SP y
 /// la consulta como la especificada en la propiedad <see cref="Ada.Framework.Data.DBConnector.Queries.Query.Consulta"/>.
 /// </summary>
 /// <remarks>
 ///     Registro de versiones:
 ///
 ///         1.0 02/03/2015 Marcos Abraham Hernández Bravo (Ada Ltda.): versión inicial.
 /// </remarks>
 /// <returns>Implementación de un comando sql.</returns>
 /// <exception cref="System.ArgumentException">Excepción lanzada al recivir una consulta nula o vacia.</exception>
 public override System.Data.IDbCommand CrearComando()
 {
     System.Data.IDbCommand retorno = base.CrearComando();
     retorno.CommandText = CreadorQuery.ObtenerQuery(this);
     return(retorno);
 }