/// <summary> /// Executa uma procedure DML /// </summary> /// <param name="query">Script a ser executado</param> /// <param name="parametros">parâmetros da procedure</param> /// <returns>Status do processamento</returns> private RetornoComando ExecutarComando(string query, SqlParameter[] parametros) { try { RetornoComando retorno = _contexto.GetRetornoComando.FromSql(query, parametros).FirstOrDefault(); if (retorno.NumeroErro > 0) { throw new Exception($"Procedure: {retorno.StoredProcedure} - Linha: {retorno.LinhaErro} - Erro: {retorno.NumeroErro} - {retorno.DescricaoErro}"); } return(retorno); } catch (Exception ex) { throw new Exception($"Erro ao executar comando Sql. \n\nDetails: {ex.Message}\n{ex.InnerException}"); } }
/// <summary> /// Executa uma procedure DML /// </summary> /// <param name="query">Script a ser executado</param> /// <param name="parametros">parâmetros da procedure</param> /// <param name="output">Parâmetro de retorno contendo o id do registro incluído em caso de inclusão</param> /// <returns>Status do processamento</returns> protected int ExecutarComandoSQLComOutput <T>(out T output, string query, params SqlParameter[] parametros) { try { var retornoOutput = parametros.FirstOrDefault(x => x.Direction == ParameterDirection.Output); RetornoComando retorno = _contexto.GetRetornoComando.FromSql(query, parametros).FirstOrDefault(); if (retorno.NumeroErro > 0) { throw new Exception($"Procedure: {retorno.StoredProcedure} - Linha: {retorno.LinhaErro} - Erro: {retorno.NumeroErro} - {retorno.DescricaoErro}"); } output = (T)retornoOutput.Value; return(retorno.RegistrosAfetados); } catch (Exception ex) { throw new Exception($"Erro ao executar comando Sql. \n\nDetails: {ex.Message}\n{ex.InnerException}"); } }
/// <summary> /// Executa uma procedure DML /// </summary> /// <param name="query">Script a ser executado</param> /// <param name="parametros">parâmetros da procedure</param> /// <param name="idInclusao">Parâmetro de retorno contendo o id do registro incluído em caso de inclusão</param> /// <returns>Status do processamento</returns> protected int ExecutarComandoSQL(string query, params SqlParameter[] parametros) { RetornoComando retorno = ExecutarComando(query, parametros); return(retorno.RegistrosAfetados); }