Ola Pessual estou desenvolvendo uma aplicação e já havia conectado normalmente ela ao banco de dados Access, inclusive ja estava excluindo, alterando, e gravando no banco so que hoje abri a aplicação e ele esta dando erro de fonte o q pode ser isso, vou colocar o código abaixo para verem se tem algo errado, mas analisei linha por linha e está tudo ok:
Essa é a minha classe conexao,
fui no Painel de controle, fontes ODBC, selecionei Microsoft Access Driver,*mdb,*accdb.
O nome da Fonte é Biblioteca.
package utilitarios;
import java.sql.*;
import javax.swing.*;
public class Conexao
{
final private String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
final private String url = "jdbc:odbc:Biblioteca"; //Criei um banco com esse nome
final private String usuario = "";
final private String senha = "";
private Connection conexao;
public Statement statement;
public ResultSet resultset;
public boolean conecta()
{
boolean result = true;
try
{
Class.forName(driver);
conexao = DriverManager.getConnection(url,usuario,senha);
} catch (ClassNotFoundException Driver)
{
JOptionPane.showMessageDialog(null,"Driver não localizado: "+Driver);
result = false;
}
catch(SQLException Fonte)
{
JOptionPane.showMessageDialog(null,"Deu erro na conexão "+ //esta dando esse erro na tela
"com a fonte de dados: "+Fonte);
result = false;
}
return result;
}
public void desconecta()
{
boolean result = true;
try
{
conexao.close();
JOptionPane.showMessageDialog(null,"banco fechado");
}
catch(SQLException fecha)
{
JOptionPane.showMessageDialog(null,"Não foi possivel "+
"fechar o banco de dados: "+fecha);
result = false;
}
}
public void executeSQL(String sql)
{
try
{
statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
resultset = statement.executeQuery(sql);
}
catch(SQLException sqlex)
{
JOptionPane.showMessageDialog(null,"Não foi possivel executar o comando sql"+sqlex+" ,o sql passato foi "+sql);
}
}
}
Na clase Cadastro estou fazendo o seguinte:
A tabela que criei no BD chama-se Cad_Acervo.
package Acervo;
import java.sql.SQLException;
import javax.swing.*;
import utilitarios.Conexao;
public class Cadastro_Acervo extends javax.swing.JFrame {
int navega = 0;
Conexao cad_acervo;//chama classe
public Cadastro_Acervo() {
initComponents();
cad_acervo = new Conexao();
cad_acervo.conecta();//invoca o metodo conecta
cad_acervo.executeSQL("select * from Cad_Acervo");
try
{
cad_acervo.resultset.first();
text_ISBN.setText(cad_acervo.resultset.getString("ISBN"));
text_ISSN.setText(cad_acervo.resultset.getString("ISSN"));
text_codMultimidia.setText(cad_acervo.resultset.getString("cod_Multimidia"));
text_numAtivo.setText(cad_acervo.resultset.getString("num_Ativo"));
text_Autor.setText(cad_acervo.resultset.getString("Autor"));
text_Tombo.setText(cad_acervo.resultset.getString("Tombo"));
text_Titulo.setText(cad_acervo.resultset.getString("Titulo"));
text_edicao.setText(cad_acervo.resultset.getString("Edicao"));
Jcombo_Assunto.setSelectedItem(cad_acervo.resultset.getString("Assunto"));
text_publicacao.setText(cad_acervo.resultset.getString("Publicacao"));
text_editora.setText(cad_acervo.resultset.getString("Editora"));
text_quantidade.setText(cad_acervo.resultset.getString("Quantidade"));
combo_Tipo.setSelectedItem(cad_acervo.resultset.getString("Tipo"));
rbuton_sim.setText(cad_acervo.resultset.getString("Acervo_Restrito"));
}
catch(SQLException erro)
{
JOptionPane.showMessageDialog(null,"Não localizou dados "+erro);
}
}
[code]
catch(SQLException Fonte) {
JOptionPane.showMessageDialog(null,"Deu erro na conexão "+ //esta dando esse erro na tela
"com a fonte de dados: "+Fonte);
result = false;
}[/code]
por isso, vai nos facilitar!!
catch(SQLException Fonte) {
JOptionPane.showMessageDialog(null,"Deu erro na conexão "+ //esta dando esse erro na tela
"com a fonte de dados: "+Fonte.getMessage());
result = false;
}
Bom o ideal seria colar o erro, mas verifique se o seu banco esta inserido no ‘‘ODBC DATA SOURCE ADMINISTRATOR’’
Localizado dentro das ferramentas administrativas, no painel de controle.
[quote=augustocolom]Bom o ideal seria colar o erro, mas verifique se o seu banco esta inserido no ‘‘ODBC DATA SOURCE ADMINISTRATOR’’
Localizado dentro das ferramentas administrativas, no painel de controle.[/quote]
Vou verificar.
Então o erro é
//Não Localizou dados java.sql.Exception: [Microsoft][ODBC Driver Manager]Estado de cursor invalido.
Caraca, eu já tive esse erro… isso é insuportável ahuauhauh
Tenta o seguinte:
voce esta fazendo alguma consulta no banco e esta tantando acessar alguma coisa no result set, mas o result set esta em uma posicao invalida.
geralmente isso acontece quando se esquece de dar um resultSet.next() antes de acessar os primeiros dados…
da uma verificada nisso
quando estiver resultSet.next();
e vc tiver certeza disso que está apontando para algo válido…
verifique se no banco de dados existe o dado referido na sua consulta.
Por exemplo:
não adianta tentar abrir uma VENDA de codigo 9, se não tem a VENDA código 9, ou seja, vc está com o parametro errado.
fiz isso, na verdade o resultset estava errado mesmo, mas o erro persiste, e não estou tentand buscar um dado especifico, estou tenatndo conectar-me ao banco, ele não mostra dado nenhum do banco na minha aplicação