Duvida com ResultSet

6 respostas
D
Não estou conseguindo usar os metos first, previous, last.

private static void MovePrevious(ResultSet rs) {

try {

rs.previous();

txtProd.setText(rs.getString(NOME));

txtPreco.setText(rs.getString(PRECO));

txtQtde.setText(rs.getString(QTDE));
}catch (SQLException e) {
				System.err.println("Erro" + e.toString() + "\n");
		}
}

está mostrando esse erro “TYPE_FORWARD_ONLY”

Se alguem puder me ajudar agradeco.

6 Respostas

N

use o construtor public Statement createStatement(int resultSetType, int resultSetConcurrency) para dizer q o cursor do resultset não é forward_only…

para o resultSetType use ResultSet.TYPE_SCROLL_INSENSITIVE ou
ResultSet.TYPE_SCROLL_SENSITIVE… não sei a diferença.

e para o resultSetConcurrency use ResultSet.CONCUR_UPDATABLE

D

Obrigado pela ajuda, mas ainda não consegui fazer funcionar.

Se for possivel, gostaria de ver un exemplo mais claro.

Obrigado pela ajuda…

P

não sei se ajuda

if (rs.next()){

txtProd.setText(rs.getString(NOME));

txtPreco.setText(rs.getString(PRECO));

txtQtde.setText(rs.getString(QTDE));

}
N

A última vez q eu fiz, foi assim:

PreparedStatement stmt = conn.prepareStatement(SELECT …”, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

rs = stmt.executeQuery();

while(rsFaturamento.next()) {

// faz o q precisa

}
rsFaturamento.beforeFirst(); // pra voltar para o primeiro

sacou?

A

Caro amigo, seguindo o modelo abaixo acredito que seus problemas serão resolvidos:

// apenas exemplo <img src="//https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/s.pnglight_smile.png?v=5" title=":slight_smile:" class="emoji" alt=":slight_smile:">

private ResultSet rs;

private Connection conexao;

private Statement stmt;
private final String PATH = "jdbc:mysql://IP/BANCO;

private final String USER = “Avenger”;

private final String SENHA = “#Aneurism”;

private final String DRIVER = “com.mysql.jdbc.Driver”;
private void conectarBanco() {

try {

Class.forName(DRIVER);

conexao = DriverManager.getConnection(

PATH, USER, SENHA);

// *** Aqui é o que você precisa ***

stmt = conexao.createStatement(ResultSet.CONCUR_UPDATABLE, ResultSet.TYPE_SCROLL_INSENSITIVE);

} catch (Exception e) {}

}

agora voce poderá navegar sussegado usando o ResultSet, exemplo:

public void carregaBanco() {

try {

rs = stmt.executeQuery(SELECT * FROM CLIENTES);

} catch (Exception e);

}

public void proximo() {

if (!rs.next()) {

rs.first(); // Circular

}

mostraDados(rs);

}
public void mostraDados(ResultSet record) {

txtNome.setText(record.getString(NOME));

txtBairro.setText(record.getSrring(BAIRRO));

}

Espero ter ajudado em algo, até a próxima!!!

P

Ola pessoal, estou com esse problema também com banco de dados Firebird…
fiz exatamente igual as esplicações do Avenger e o banco so deloca para frente, o first tbm nao funciona. O pode ser feito com esse probleminha básico???

Criado 22 de janeiro de 2004
Ultima resposta 19 de jul. de 2005
Respostas 6
Participantes 5