Testando Retorno do Banco

Prezados preciso saber a melhor maneira de testar um retorno do Banco de Dados tipo:

[code] String sql = "select s.cd_servico as cd_servico, s.ds_servico as ds_servico, e.cd_servico as ecd_servico " +
"from dbamv.servico s, dbamv.escala_cirurgia e " +
"where e.cd_servico = s.cd_servico " +
"and dt_escala = ? " +
"and cd_sal_cir = ? " +
"and tp_turno = ? ";

  PreparedStatement stmt = con.prepareStatement(sql);
         
    ResultSet rs = null;
    
    stmt.setString(1,data);
    stmt.setInt(2,sala);
    stmt.setInt(3,turno);
    
    //faz primeira busca no banco de dados
    
    rs = stmt.executeQuery();

//QUERO FAZER O TESTE AQUI EM BAIXO, SE RS.NEXT() RETORNA NADA
//DO BANCO QUERO TRATAR O HTML.APPEND PARA "SEM REGISTRO"!

    while (rs.next()){
        
         String ds_servico = rs.getString("ds_servico");
        
         html.append(ds_servico);
        
        }
            
    rs.close();[/code]

Valeu gang do Portal Java

[code]rs = stmt.executeQuery();

if(!rs.first()){
//sem registros
}

rs.beforeFirst();

while(rs.next()){
//…
}[/code]

Olá tbarros,

Como não existe um método pra saber quantas linhas retornaram em um ResultSet, eu tenho duas alternativas para o seu problema.

A primeira é você fazer a mesma consulta no seu banco, só que pedindo a quantidade de registros (“select COUNT(*) from dbamv.servico s, dbamv.escala_cirurgia e where e.cd_servico = s.cd_servico and dt_escala = ? and cd_sal_cir = ? and tp_turno = ?”). Aí você vê quantos registros deu. Se tiver dado pelo menos um, você faz a consulta novamente, só que pedindo os campos que você quer. Se não, você já sabe que não tem nada e pode colocar “SEM REGISTRO”.

A segunda idéia (que é mais viável) é você usar uma variávelzinha booleana pra indicar se você entrou ou não dentro do while (rs.next()). Se tiver entrado, pelo menos uma vez, é porque você encontrou pelo menos um registro. Se não, aí você coloca “SEM REGISTRO” onde você falou. Por exemplo:

boolean entrou = false; while (rs.next()) { String ds_servico = rs.getString("ds_servico"); html.append(ds_servico); entrou = true; } rs.close(); if (!entrou) { html.append("SEM REGISTRO"); }

Até mais,