Erro: The result set has no current row

13 respostas
R

Olá, tudo bem?
Estou com um problema para ler os dados no banco SQL SERVER 2008 R2, alguém pode me ajudaar?
Andei dando um procurada nesse erro, e encontrei varios posts sobre…
Mas acontece que esse erro aparece quando vc precisa colocar um ponto de partida na sua pesquisa e eu fiz isso e mesmo assim continua com problema…

olha minha classe de conexao

package br.com.ricardo.bancojavaflexblazeds;

import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.swing.JOptionPane;

public class ServicoJavaPessoa {

	@SuppressWarnings("unchecked")
	public List listar_pessoa()
	{
		List lista_pessoas = new ArrayList();				 
		String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
		String url = "jdbc:sqlserver://RICARDO-PC:1433;database=flex;";
		String usuario = "sa";
		String senha = "segredo";
		Connection conexao;
		Statement statement;
		ResultSet resultset;
		
		try
		{
			Class.forName(driver);
			
			conexao = DriverManager.getConnection(url, usuario, senha);

			
			
			statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
			resultset = statement.executeQuery("select * from pessoas");
			
			while (resultset.next());
			{
				HashMap hashmap_pessoas = new HashMap();
				hashmap_pessoas.put("id", resultset.getString("id"));
				hashmap_pessoas.put("nome", resultset.getString("nome"));
				hashmap_pessoas.put("endereco", resultset.getString("endereco"));
				hashmap_pessoas.put("email", resultset.getString("email"));
				lista_pessoas.add(hashmap_pessoas);
			}
		}
		catch(java.lang.ClassNotFoundException Driver)
		{
			JOptionPane.showMessageDialog(null, "Classe do banco de dados não encontrada "+Driver);
		}
		catch(SQLException Banco)
		{
			JOptionPane.showMessageDialog(null, "Erro ao manipular o banco de dados "+Banco);
		}
		
		return lista_pessoas;
		
	}
	
	
	
}

13 Respostas

dijava

posta o erro !

e a principio
substitua

HashMap hashmap_pessoas = new HashMap();
Map<String,String> hashmap_pessoas = new HashMap<String,String>();
R

http://uploaddeimagens.com.br/imagem/index/errojava.jpg

Coloquei o link do erro que vai exibir o SS do erro!

eu não entendi como vc manipulou o Map, poderia dar um exemplo por favor

dijava

Map é uma interface HashMap e a classe q implementa Map e o conceito do map é chave e valor ou seja qnd vc declara vc tem q dizer qual o tipo da chave e do valor exemplo :

Map<String,String> m = new HashMap<String,String>();
m.put("chave1","Mengao");
m.put("chave2","maior do mundo"); 
System.out.println(m.get("chave1")); //printa "Mengao"
System.out.println(m.get("chave2")); //printa "maior do mundo"

entendeu ?

dijava

qual driver tu ta usando ? caso seja o propio da microsoft meu caro desista jogue isso no lixo !!!JÁÁÁ !!! rsrs use esse http://jtds.sourceforge.net/

R

Sim estou usando o da microsoft sqljdbc4.jar

Tentei trocar o codigo e nada…

try
		{
			Class.forName(driver);
			
			conexao = DriverManager.getConnection(url, usuario, senha);

			
			
			statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
			resultset = statement.executeQuery("select * from pessoas");
			
			while (resultset.next());
			{
				Map<String, String> hashmap_pessoas = new HashMap<String, String>();
				
				hashmap_pessoas.put("id", resultset.getString("id"));
				hashmap_pessoas.put("nome", resultset.getString("nome"));
				hashmap_pessoas.put("endereco", resultset.getString("endereco"));
				hashmap_pessoas.put("email", resultset.getString("email"));
				lista_pessoas.add(hashmap_pessoas);
			}
		}
		catch(java.lang.ClassNotFoundException Driver)
		{
			JOptionPane.showMessageDialog(null, "Classe do banco de dados não encontrada "+Driver);
		}
		catch(SQLException Banco)
		{
			JOptionPane.showMessageDialog(null, "Erro ao manipular o banco de dados "+Banco);
		}
		
		return lista_pessoas;
		
	}
dijava

nao é so o codigo troque o driver jdbc jogue fora o jdbc q vc tem da microsoft e coloque o q eu te passei !

R

sim vou fazer isso, problema é que nao sei como ficará essa linha

String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
dijava

no site tem exemplo !!!

R

Sim, achei a documentação e ja alterei

String driver = “net.sourceforge.jtds.jdbc.Driver”;

Porém agora deu um erro que não estava dando, pode me ajudar novamente por favor

http://uploaddeimagens.com.br/imagem/index/7errojava.jpg

Eu tenho que fazer alguma coisa no banco antes de usa-lo?

dijava

tu colocou o driver do jtds no seu classpath ?

R

sim claro… antes de acertar a linha do driver deu erro falando que nao encontrou a classe do driver agora encontrou e deu esse erro ai

dijava

bom da um clean no seu projeto e roda de novo !!! mas se nao for joga o erro no google pq assim eu nao sei esse erro pelo q eu vi é o driver nao encontrado!

R

o erro era na url que estava usando a correta é assim

String url = "jdbc:jtds:sqlserver://RICARDO-PC:1433;database=flex;";

Agora ta dando um erro ao manipular pessoas

que é o nome da minha tabela… Vou ver o que é?
alguma dica?

Criado 26 de maio de 2010
Ultima resposta 26 de mai. de 2010
Respostas 13
Participantes 2