/// <summary> /// ExecuteInsert /// </summary> /// <param name="pInformacaoTransacao"></param> /// <param name="pSqlConnection"></param> /// <returns></returns> internal ResultadoTransacao ExecuteInsert(InformacaoTransacao pInformacaoTransacao, SqlConnection pSqlConnection) { ResultadoTransacao resultadoTransacao = new ResultadoTransacao("Insert"); SqlCommand sqlCommand = pInformacaoTransacao.ObterSqlCommand(); sqlCommand.Connection = pSqlConnection; resultadoTransacao.MarcarRegistrosAfetados(sqlCommand.ExecuteNonQuery()); return(resultadoTransacao); }
/// <summary> /// ExecuteSelect /// </summary> /// <param name="pInformacaoTransacao"></param> /// <param name="pSqlConnection"></param> /// <returns></returns> internal ResultadoTransacao ExecuteSelect(InformacaoTransacao pInformacaoTransacao, SqlConnection pSqlConnection) { ResultadoTransacao resultadoTransacao = new ResultadoTransacao("Select"); SqlCommand sqlCommand = pInformacaoTransacao.ObterSqlCommand(); this.sqlDataAdapter = new SqlDataAdapter(sqlCommand); DataSet dataSet = new DataSet(); sqlCommand.Connection = pSqlConnection; sqlCommand.CommandTimeout = 3000; this.sqlDataAdapter.SelectCommand = sqlCommand; resultadoTransacao.MarcarRegistrosAfetados(this.sqlDataAdapter.Fill(dataSet)); resultadoTransacao.MarcarDataSet(dataSet); resultadoTransacao.MarcarParametrosSaida(pInformacaoTransacao.ObterParametrosSaida(this.sqlDataAdapter.SelectCommand)); return(resultadoTransacao); }
/// <summary> /// ExecuteProcedure /// </summary> /// <param name="pInformacaoTransacao"></param> /// <param name="pSqlConnection"></param> /// <returns></returns> internal ResultadoTransacao ExecuteProcedure(InformacaoTransacao pInformacaoTransacao, SqlConnection pSqlConnection, SqlTransaction pSqlTransaction) { ResultadoTransacao resultadoTransacao = new ResultadoTransacao("Procedure"); SqlCommand sqlCommand = pInformacaoTransacao.ObterSqlCommand(); sqlCommand.Transaction = pSqlTransaction; this.sqlDataAdapter = new SqlDataAdapter(sqlCommand); DataSet dataSet = new DataSet(); sqlCommand.Connection = pSqlConnection; sqlCommand.CommandTimeout = 3000; // int registrosAfetados = sqlCommand.ExecuteNonQuery(); // resultadoTransacao.MarcarRegistrosAfetados(registrosAfetados); resultadoTransacao.MarcarParametrosSaida(pInformacaoTransacao.ObterParametrosSaida(sqlCommand)); // return(resultadoTransacao); }
/// <summary> /// Verifica e executa o instrução SQL /// </summary> /// <param name="pInformacaoTransacao"></param> /// <returns></returns> private ResultadoTransacao ExecutarSQL(InformacaoTransacao pInformacaoTransacao) { try { switch (pInformacaoTransacao.TipoTransacao) { case TipoTransacao.Select: this._resultadoTransacao = this._executor.ExecuteSelect(pInformacaoTransacao, FabricaConexao.ObterInstancia().ObterConexao()); break; case TipoTransacao.Update: this._resultadoTransacao = this._executor.ExecuteUpdate(pInformacaoTransacao, FabricaConexao.ObterInstancia().ObterConexao()); break; case TipoTransacao.Insert: this._resultadoTransacao = this._executor.ExecuteInsert(pInformacaoTransacao, FabricaConexao.ObterInstancia().ObterConexao()); break; case TipoTransacao.Delete: this._resultadoTransacao = this._executor.ExecuteDelete(pInformacaoTransacao, FabricaConexao.ObterInstancia().ObterConexao()); break; case TipoTransacao.Procedure: this._resultadoTransacao = this._executor.ExecuteProcedure(pInformacaoTransacao, FabricaConexao.ObterInstancia().ObterConexao()); break; default: throw new Exception("Tipo de transação Inválida!"); } return(this._resultadoTransacao); } catch (SqlException) { throw; } catch (System.Exception) { throw; } }
/// <summary> /// Executar /// </summary> /// <param name="pInformacaoTransacao"></param> /// <returns></returns> public ResultadoTransacao Executar(InformacaoTransacao pInformacaoTransacao) { try { FabricaConexao.ObterInstancia().ObterConexao().Open(); // switch (pInformacaoTransacao.TipoTransacao) { case TipoTransacao.Select: case TipoTransacao.Update: case TipoTransacao.Insert: case TipoTransacao.Delete: case TipoTransacao.Procedure: this._resultadoTransacao = this.ExecutarSQL(pInformacaoTransacao); break; default: throw new Exception("Tipo de transação Inválido!"); } return(_resultadoTransacao); } catch (SqlException ex) { if (ex.Number == 2601 || ex.Number == 2627) { this._resultadoTransacao.MarcarExcecao(ex); this._resultadoTransacao.MarcarResultado(Utilitarios.Enumeradores.Resultados.Duplicado); return(this._resultadoTransacao); } else if (ex.Number == 547) { this._resultadoTransacao.MarcarResultado(Utilitarios.Enumeradores.Resultados.FKConstraint); this._resultadoTransacao.MarcarExcecao(ex); return(this._resultadoTransacao); } else if (ex.Number == -1) { this._resultadoTransacao.MarcarResultado(Utilitarios.Enumeradores.Resultados.SemConexao); this._resultadoTransacao.MarcarExcecao(ex); return(this._resultadoTransacao); } else { this._resultadoTransacao.MarcarResultado(Utilitarios.Enumeradores.Resultados.Erro); this._resultadoTransacao.MarcarExcecao(ex); return(this._resultadoTransacao); } } catch (System.Exception ex) { this._resultadoTransacao.MarcarResultado(Utilitarios.Enumeradores.Resultados.Erro); this._resultadoTransacao.MarcarExcecao(ex); return(this._resultadoTransacao); } finally { FabricaConexao.ObterInstancia().ObterConexao().Close(); } }