Erro: java.sql.SQLException: After end of result set

3 respostas
A

Oi, boa noite..., estou fazendo um trabalho sobre uma locadora, e cheguei na parte de Locar.
quando entro em locar e localizo o cliente pelo CPF, ele localiza e faz a locação normalmente, mas quando eu vou buscar o cliente que já fez uma locação ele da o erro: java.sql.SQLException: After end of result set
Desde já agradeço.

Onde esta a seta é onde ele pula pro catch. Essa parte do código é da Locar.java
public void localizarCliente()
{
    try
    {
        Cliente cliente = new Cliente();
        FilmeCliente filmecliente = new FilmeCliente();
            
        DefaultTableModel model = (DefaultTableModel) jTable2.getModel();
        cliente.setCpfCli(jFormattedTextField1.getText());
        cliente.localizar();
        filmecliente.setIdCli(cliente.getIdCli());
->    filmecliente.selecionarTudoLocadoPorCliente();
            
        if (filmecliente.getCond())
        {
            JOptionPane.showMessageDialog(this, "Já existem filme locados para este Cliente.", "Erro", JOptionPane.ERROR_MESSAGE);
        }
            
        while (filmecliente.getCond())
        {
            model.addRow(new String[] {String.valueOf(filmecliente.getIdFil()), filmecliente.getNomFil()});
            filmecliente.proximoLocado();
        }
        cliente.fechar();
        filmecliente.fechar();
        jTextField1.setText(cliente.getNomCli());
        idCli = cliente.getIdCli();
    }
    catch(Exception e)
    {
        JOptionPane.showMessageDialog(this, e, "Erro", JOptionPane.ERROR_MESSAGE);
    }
}
Essa parte é do código FilmeCliente.java
public void proximo() throws Exception
{
    if(cond=rs.next())
    {
        setartudo();
    }
}
    
public void proximoLocado() throws Exception
{
    if(cond=rs.next())
    {
        proximo();
        nomFil = rs.getString("nomFil");
    }
}
public void selecionarTudoLocadoPorCliente() throws Exception
{
    conectar();
    pstm=conn.prepareStatement("SELECT filme.nomFil, filmecliente.*," +
            " DATE_FORMAT(datAlu,\"%d-%m-%Y\") AS alugado," +
            " DATE_FORMAT(datDev,\"%d-%m-%Y\") AS devolvido," +
            " cliente.nomCli FROM filmecliente" +
            " INNER JOIN filme ON filme.idFil = filmecliente.idFil" +
            " INNER JOIN cliente ON filmecliente.idCli = cliente.idCli" +
            " WHERE cliente.idCli=? AND filme.aluFil = 1");
    pstm.setInt(1, idCli);
    rs=pstm.executeQuery();
    proximoLocado();
}

3 Respostas

L

Blz,

muito provavelmente em cliente.localizar(); o cursor chegou ao final do resultSet.

Basicamente você encontrou EOF = TRUE. Tem que dedilhar o código mesmo.

Abs.

A

vlw leorbarbosa …

mas o erro era em

public void proximoLocado() throws Exception { if(cond=rs.next()) { proximo(); nomFil = rs.getString("nomFil"); } }

eu fiz assim e resolveu…

public void proximoLocado() throws Exception { if(cond=rs.next()) { idFil = rs.getInt("ifFil"); nomFil = rs.getString("nomFil"); proximo(); } }

mas de qualquer forma muito obrigado… ^^

L

aslem:
vlw leorbarbosa …

mas o erro era em

public void proximoLocado() throws Exception { if(cond=rs.next()) { proximo(); nomFil = rs.getString("nomFil"); } }

eu fiz assim e resolveu…

public void proximoLocado() throws Exception { if(cond=rs.next()) { idFil = rs.getInt("ifFil"); nomFil = rs.getString("nomFil"); proximo(); } }

mas de qualquer forma muito obrigado… ^^

O cursor chegou ao final do resultSet.

Basicamente você encontrou EOF = TRUE. Tem que dedilhar o código mesmo.

Criado 24 de maio de 2013
Ultima resposta 25 de mai. de 2013
Respostas 3
Participantes 2