Detectar mudanças no resultset

3 respostas
R

Gostaria de saber com fazer para o Netbeans detectar uma mudança num resultset quando eu navego com rs.next(); rs.previous(); Porque estou querendo criar um método que ao ser feito essa navegação ele jogue dados de um DB em um JTextField.

Tentei criar algum tipo de evento tipo OnChange ou algo parecido mas não estou conseguindo.

Alguem conhece algum jeito de fazer isso?

3 Respostas

W

Se eu entendi a sua pergunta vc ta querendo implementar um programa pra percorrer os seus registros certo?

Se for isso, vc tem que programar os botoes que quando clicados move next() ou previous() no ResultSet e joga os valores para o JTextField.

por exemplo :

Se vc tem um Botao (bNext) que move para o proximo registro do Result Set, poderia ser algo assim :

JTextField t1  = new JTextField(); // campo nome
JTextField t2  = new JTextField(); // campo endereco

JButton bNext = JButton("Next");

bNext.addActionListener( new ActionListener() {
                
                public void actionPerformed (ActionEvent e) {
                    
                    try {

                        rs.last();
                        t1.setText(resultset.getString("nome"));
                        t2.setText(resultset.getString("endereco"));
                        
                    } catch (SQLException sql) {

                        sql.printStackTrace();

                    }

                }
                
            } );

Isso serve pros metodos previous, last, first.

//Daniel

davidbuzatto

Você quer fazer algo parecido com o delphi né…

Bem, não é tão simples como o windsofhell falou…

Os métodos first, previous e last vão depender de como seu ResultSet foi construído (depende da implementação do seu driver)…

O que eu aconselho é (se você realmente precisa dessa funcionalidade) é carregar todo o result set em uma estrutura, como um ArrayList, ou melhor, um RowSetDynaClass (do commons-beanutils) e ir navegando a estrutura ao invés do ResultSet… Ai você só abre a conexão quando precisar de novos dados… Para que os dados do ResultSet fiquem ativos vocênão pode fechar a conexão que gerou o mesmo.

Até mais!

R

Sim incialmente eu fiz desse modo que quando clicasse num botão, ele navegava no resultset e atualizava o JTextField, o problema é que eu transformei o navegador em um componente independente.

Assim eu ligo ele num resultset e ele faz a navegação. Mas única coisa que tenho acesso é o resultset.

tendo apenas o resultset eu precisava que o java criasse um evento em que a qualquer momento que o resultset fosse modificado ele executasse uma ação.

no Delphi seria mais ou menos assim:

você adicionaria um DataSet e no envento OnChange vc colocava o código desejado.

O problema é que o resultset num tem um evento Onchange.

Acho que muita gente está tendo dificuldade com o resultset por conta disso, e já estou varios dias em busca de uma solução para este problema.

Criado 23 de julho de 2007
Ultima resposta 23 de jul. de 2007
Respostas 3
Participantes 3