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); } }
/// <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); }