Metodo rs.last() - erro!

3 respostas
K

O método last() do ResultSet gera uma exceção; not yet implemented
Alguém pode me dar uma mãozinha aí?
Valeu!!

3 Respostas

E

Boa tarde.

Tem alguns drivers JDBC que não permitem usar last ou first. Tive problema com o Firebird. Porém o JDBC do Oracle funciona.

Tente criar o statement usando a propriedade resulsetType.

Confira no link
http://www.guj.com.br/java.article.get.print.chain?article.id=120

Espero ter ajudado.

t+

K
Obrigado pelas informações muito bom esse artigo do guj. Mas ainda não consegui resolver meu problema... Queria fazer uma função para simular um auto-incremento num campo CODIGOCLIENTE numa tabela CLIENTES, sem deixar lacunas quando excluir um registro... Minha idéia foi essa:
public int pegarUltimoRegistro()
 {
  int ultimoCodigo = 1;  // inicialização obrigatória
  String query = "SELECT CODIGOCLIENTE FROM CLIENTES"; 

  try
  {
   Statement st = con.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

   // Primeiro buscar o valor do código do último cliente da tabela - controle automático
   // se for o primeiro registro então codigo = 1 é mantido
   // senão recebe o valor da busca + 1
   ResultSet rs = st.executeQuery(query);

   if(rs.last())
   {
    ultimoCodigo = rs.getInt("CODIGOCLIENTE");
    ++ultimoCodigo;
   }

   st.close();
  }
  catch(SQLException ex)
  {
   System.err.println("SQLException: " + ex.getMessage());
  }
  
  return(ultimoCodigo);
 }

Críticas e sugestões são muito bem vindas!! Valeu!!

E

Bom dia.

Faça um SQL que retorne:

select max(codigocliente) from cliente

Depois incremente o retorno da consulta.

t+

Criado 23 de maio de 2005
Ultima resposta 31 de mai. de 2005
Respostas 3
Participantes 2