Problemas para conectar ao Banco de dados Access[Resolvido]

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);
    }
    }

Cole o erro.

Erro na conexao com a fonte de dados

Troque isso

[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; }

ok?

Bom, troquei mas o efeito foi o mesmo:

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";
    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.getMessage());     
            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);  
   }
}
}

Ele diz que deu erro com a conexao Microsoft ODBC, nome da fonta padrão não encontrado e nenhum driver padrão especificado

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.

Então verifiquei, e la consta o driver especificado como Biblioteca o mesmo nome que dei ao meu banco

Caraca, eu já tive esse erro… isso é insuportável ahuauhauh

Tenta o seguinte:

  1. 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

  1. 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.

ok?

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

Agora ele não esta dando mais o erro na classe conexao e sim na classe cadastro:

  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 CadAcervo");
    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);//ele apresenta esse erro +(Column not found);
    }
    }

você está mandando ele acessar uma coluna que não existe na tabela =)

Pois é cara tiro o chapeu pra vc, deu certo, rsrsrsr.

Mais uma vez valew Brother

[quote=TCalderoni]Agora ele não esta dando mais o erro na classe conexao e sim na classe cadastro:

[code]
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 CadAcervo");
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);//ele apresenta esse erro +(Column not found);
}
}

[/code][/quote]

Cara, só para que fique mais fácil copiar e colar o erro, insira um

System.out.println(erro);

abaixo de

JOptionPane.showMessageDialog(null,"Não localizou dados "+erro);
System.out.println(erro);

Fica mais fácil de copiar e colar aqui.

Cara,