Olá pessoal do forum, estou precisando da ajuda de vocês, pois não estou conseguindo executar uma procedure no programa que estou desenvolvendo.
Segue o erro abaixo:
vc esta executando uma procedure neh? como esta fazendo a chama? vc tem a especificação do retorno dessa proc?
J
joaosouzaPJ
Olá pedrobusko, abaixo o codigo que fiz para executar a procedure.
Collection<RecursoVO>results=newArrayList<RecursoVO>();CallableStatementstmt=null;ResultSetrs=null;try{stmt=getConnection().prepareCall("{call SP_PESQUISARECURSO(?,?,?)}");stmt.setString(1,"SPR");if(recursoVO2.getCodRecurso_pes()!=null&&recursoVO2.getCodRecurso_pes()!=0){stmt.setInt(2,recursoVO2.getCodRecurso_pes());}else{stmt.setNull(2,java.sql.Types.INTEGER);}if(recursoVO2.getDscNomeCompleto_pes()!=null&&recursoVO2.getDscNomeCompleto().equals("")){stmt.setString(3,recursoVO2.getDscNomeCompleto_pes());}else{stmt.setNull(3,java.sql.Types.VARCHAR);}// executa a procedure (passo listar(select))rs=stmt.executeQuery();--->Aquieleapresentaoerrowhile(rs.next()){RecursoVOrecursoVO=newRecursoVO();recursoVO.setCodRecurso(rs.getInt("cod_recurso"));recursoVO.setDscCargo(rs.getString("dsc_cargo"));recursoVO.setDscComentario(rs.getString("dsc_comentario"));recursoVO.setDscEmail(rs.getString("dsc_email"));recursoVO.setDscNomeCompleto(rs.getString("dsc_nome_completo"));recursoVO.setNumTelCasa(rs.getString("num_tel_casa"));recursoVO.setNumTelCelular(rs.getString("num_tel_celular"));recursoVO.setNumTelComercial(rs.getString("num_tel_comercial"));recursoVO.setNumTelFax(rs.getString("num_tel_fax"));recursoVO.setDtaAdmissao(rs.getString("dta_admissao"));recursoVO.setDtaNascimento(rs.getString("dta_nascimento"));recursoVO.setDtaPrevFerias(rs.getString("dta_prev_ferias"));results.add(recursoVO);}}catch(SQLExceptione){s_log.error(e.getMessage());thrownewDAOException(e.getCause());}finally{DAOFactory.releaseResources(stmt,rs);}returnresults;
Obrigado pela atenção.
P
pedrobuskoPJ
cara, aparentemente esta certo…mas eu to com sono e posso ter deixado alguma coisa passar…vc q fez a procedure? da uma verifica nos parametros q vc esta enviando, e no retorno dela…
J
joaosouzaPJ
Olá pedrobusko, consegui resolver o problema.
Tinha feito coisa errada na procedure.
Muito obrigado, pela atenção.
L
laquinePJ
Olá joaosouza!
Eu criei uma procedure que ao chama-la de dentro do codigo Java também esta retornando a mensagem “The statement did not return a result set.” Porém no SQL Analyzer do SQL Server retorna um resultset. Acredito q seja algum problema na procedure (ela possui recursividade! existe algum problema nisso!?). O q vc fez na sua procedure para que funcionasse?
Obs.: Criei uma outra procedure simples para teste enão tive nenhum problema.