Consulta SQL

4 respostas
R4z13l

Galera esse é meu primeiro post, desculpe qualquer coisa...

seguinte, sou iniciante em java estou aprendendo a fazer conexão com um bd simples feito em access.
até ai tudo bem

meu professor deu um exercício para fazer uma consulta no banco
uma janela simples com os campos Nome, Telefone, Email

e os botoes para andar na consulta

|< < > >|

|< = primeiro registro
< = registro anterior
> = próximo registro
>| = ultimo registro

agora vamos ao meu problema...
quando clico no botão >
ele percorre todos os registro normalmente
agora se clicar em algum outro botão ele me da esse erro:

Result set is TYPE_FORWARD_ONLY

meu código

private void carregarResultSet(){
        try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con = DriverManager.getConnection("jdbc:odbc:AGENDA");
            Statement st = con.createStatement();
            String sql = ("SELECT * FROM Contatos ORDER BY Nome");
            rs = st.executeQuery(sql);

            if( rs.next() ){
                tfNome.setText(rs.getString("Nome"));
                tfTelefone.setText(rs.getString("Telefone"));
                tfEmail.setText(rs.getString("E-mail"));
            }
        } catch (Exception ex){
            JOptionPane.showMessageDialog(this, ex.getMessage());            

        }
    }


    public void actionPerformed(ActionEvent ae) {
        //Botão Proximo
        if (ae.getSource() == btnNext ) {
            try {
                if( rs.next() ) {
                    tfNome.setText(rs.getString("Nome"));
                    tfTelefone.setText(rs.getString("Telefone"));
                    tfEmail.setText(rs.getString("E-mail"));
                }
            } catch (SQLException e) {
                JOptionPane.showMessageDialog(this, "Não há mais contatos");
            }
        }
        //Botão Anterior
        else if(ae.getSource() == btnBack){
            try{
                if(rs.previous()){
                    tfNome.setText(rs.getString("Nome"));
                    tfTelefone.setText(rs.getString("Telefone"));
                    tfEmail.setText(rs.getString("E-mail"));
                }
            }catch (SQLException e){JOptionPane.showMessageDialog(this, e.getMessage());}
        }
        //Botão Primeiro
        else if(ae.getSource() == btnFirst){
            try{
                if(rs.first()){
                    tfNome.setText(rs.getString("Nome"));
                    tfTelefone.setText(rs.getString("Telefone"));
                    tfEmail.setText(rs.getString("E-mail"));
                }
            }catch (SQLException e){JOptionPane.showMessageDialog(this, e.getMessage());}
        }
        //Botão Ultimo
        else if(ae.getSource() == btnLast){
            try{
                if(rs.last()){
                    tfNome.setText(rs.getString("Nome"));
                    tfTelefone.setText(rs.getString("Telefone"));
                    tfEmail.setText(rs.getString("E-mail"));
                }
            }catch (SQLException e){JOptionPane.showMessageDialog(this, e.getMessage());}
        }

desde já agradeço
Obrigado!

4 Respostas

R

Ao criar seu Statement, informe que gostaria que os Resultset’s gerados por ele possam ser percorridos de forma bidirecional:

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

Um alerta: nem todos os drivers JDBC dão suporte a esse recurso.

R4z13l

roger_rf:
Ao criar seu Statement, informe que gostaria que os Resultset’s gerados por ele possam ser ser percorridos de forma bidirecional:

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

Um alerta: nem todos os drivers JDBC dão suporte a esse recurso.

nossa, era isso mesmo, deu certo

grato ^^

nem sabia disso, tenho muito que aprender ainda =/

N

A dúvida já foi respondida, só como complemento, aqui você pode encontrar outros parâmetros e suas definições.

http://download.oracle.com/javase/1.4.2/docs/api/java/sql/ResultSet.html

R4z13l

nephestos:
A dúvida já foi respondida, só como complemento, aqui você pode encontrar outros parâmetros e suas definições.

http://download.oracle.com/javase/1.4.2/docs/api/java/sql/ResultSet.html

obrigado pelo material, mais ainda tenho uma certa dificuldade com inglês

mais já da pra enter um pouco pelo menos

Criado 30 de setembro de 2010
Ultima resposta 30 de set. de 2010
Respostas 4
Participantes 3