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:
"The statement did not return a result set."
Será que alguem pode me ajudar ?
Muito obrigado a todos.
vc esta executando uma procedure neh? como esta fazendo a chama? vc tem a especificação do retorno dessa proc?
Olá pedrobusko, abaixo o codigo que fiz para executar a procedure.
Collection<RecursoVO> results = new ArrayList<RecursoVO>();
CallableStatement stmt = null;
ResultSet rs = 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(); ---> Aqui ele apresenta o erro
while(rs.next()) {
RecursoVO recursoVO = new RecursoVO();
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 (SQLException e) {
s_log.error(e.getMessage());
throw new DAOException(e.getCause());
} finally {
DAOFactory.releaseResources(stmt, rs);
}
return results;
Obrigado pela atenção.
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…
Olá pedrobusko, consegui resolver o problema.
Tinha feito coisa errada na procedure.
Muito obrigado, pela atenção.
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.
Obrigado.