Onde consigo o Drive do ODBC/JDBC

Alguem saberia me dizer onde encontro o Drive do ODBC/JDBC

valeu

procure no site do fabricante do seu banco

to usando o Access aqui para uns testes, mas não achei o drive ainda :sad:

Já tentou na Microsoft ou no Google?!

[]s

http://www.javaworld.com/javaworld/javaqa/2000-09/03-qa-0922-access.html

:wink:

Opa!!!

Que eu saiba vc não precisa baixar um drive ODBC/JDBC. Esse é um driver padrão.

Posta pra gente a string de conexão q vc ta usando e tbm se certifique de ter ido la no painel de controle - ferramentas administrativas - fontes de dados (ODBC) e configurado o nome ODBC pro arquivo de BD que vc deseja manipular.

só como exemplo, eu poderia la nessa tela configurar um nome ODBC chamado teste pro arquivo c:\banco.mdb

Então no java eu faria

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
conn = DriverManager.getConnection(“jdbc:odbc:teste”,“usuario”,“senha”);

Caso o banco não possua senha, pode deixar os campos usuario e senha em branco… so com “”.

Não sei se era bem nesse ponto q vc tava travado, mas tomara que ajude.

Abraços!

para o caso do ACCESS voce pode nem precisa configurar ODBC se utilizar os comando abaixo:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con= DriverManager.getConnection("jdbc:odbc:Driver=" + "{Microsoft Access Driver (*.mdb)};" + "DBQ=C:\\pasta\\banco2.mdb","","");

[quote=“denis_arruda”]para o caso do ACCESS voce pode nem precisa configurar ODBC se utilizar os comando abaixo:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con= DriverManager.getConnection("jdbc:odbc:Driver=" + "{Microsoft Access Driver (*.mdb)};" + "DBQ=C:\\pasta\\banco2.mdb","",""); [/quote]

caramba… que show… vc pode “configurar o ODBC” em tempo de execução!
valeu pela dica… não sabia dessa :roll:

Pessoal ainda continua dando erro :cry:

vejam minha classe:

import java.util.;
import java.awt.
;
import java.awt.event.;
import javax.swing.
;
import java.sql.*;
/**
*

  • @author Douglas
    */
    public class TableDisplay extends JFrame {

    private Connection connection;
    private JTable table;

    /** Creates a new instance of TableDisplay */
    public TableDisplay() {
    String url = “jdbc:odbc:Livros”;
    String usuario = " ";
    String senha = " ";

     try {
         Class.forName ("sun.jdbc.odbc.JdbcodbcDriver");
         
         connection = DriverManager.getConnection (url,usuario,senha);
     }
     catch(ClassNotFoundException cnfex){
         
         System.err.println("Falha no carregamento do Drive JDBC/ODBC");
         cnfex.printStackTrace ();
         System.exit (1);
     }
     catch(SQLException sqlex){
         
         System.err.println("Não há conexão");
         sqlex.printStackTrace ();
     }
     
     getTable();
     
     setSize(450,150);
     show();
    

    }

    private void getTable() {

     Statement statement;
     ResultSet resultSet;
     
     try {
         String cons = "SELECT * FROM Autor";
         
         statement = connection.createStatement();
         resultSet = statement.executeQuery(cons);
         displayResultSet(resultSet);
         statement.close ();
     }
     catch(SQLException sqlex) {
         sqlex.printStackTrace ();
     }
    

    }

    private void displayResultSet(ResultSet rs) throws SQLException
    {
    boolean moreRecords = rs.next ();

     if(!moreRecords){
         JOptionPane.showMessageDialog (this,"O banco não contem regitros");
         setTitle("Não contém registros para exibição");
         return;
     }
     
     setTitle("Autores da tabela Livros");
     
     Vector colunas = new Vector();
     Vector linhas = new Vector();
     
     try {
         ResultSetMetaData rsmd = rs.getMetaData ();
         
         for(int i = 1; i<=rsmd.getColumnCount(); ++i) 
             colunas.addElement(rsmd.getColumnName(i));
         
         do {
             linhas.addElement(getNextRow(rs,rsmd));
             
         }while(rs.next ());
         
         table = new JTable(linhas,colunas);
         JScrollPane scroll = new JScrollPane(table);
         getContentPane().add(scroll,BorderLayout.CENTER);
         validate();
     }
     catch(SQLException sqlex) {
         sqlex.printStackTrace ();
     }
    

    }

    private Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd) throws SQLException
    {
    Vector currentRow = new Vector();

     for (int i=1; i <= rsmd.getColumnCount();++i)
         switch(rsmd.getColumnType (i)){
             case Types.VARCHAR:
                 currentRow.addElement (rs.getString(i));
             break;
             case Types.INTEGER:
                 currentRow.addElement (new Long(rs.getLong (i)));
             break;
             default:
                 System.out.println("Type was: "+rsmd.getColumnTypeName (i));
         }
         return currentRow;
    

    }

    public void shutDown() {
    try {
    connection.close();
    }
    catch(SQLException sqlex) {
    System.err.println (“Não pode desconectar”);
    sqlex.printStackTrace ();
    }
    }

    public static void main(String args[]) {
    final TableDisplay app = new TableDisplay();

     app.addWindowListener (new WindowAdapter() {
         
         public void windowClosing(WindowEvent e)
         {
             app.shutDown ();
             System.exit(0);
         }
     }
     );
    

    }
    }

esses são os erros:

Falha no carregamento do Drive JDBC/ODBC
java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcodbcDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at Banco.TableDisplay.<init>(TableDisplay.java:31)
at Banco.TableDisplay.main(TableDisplay.java:136)

Valeu pela ajuda até agora pessoal :lol:

Opa!!!

Olha amigo, eu confesso que não olhei o código todo… mas já vi o erro que está dando aquela exceção.

Confira sua string de conexão…

sun.jdbc.odbc.JdbcodbcDriver

tem uma letra errada, o certo é:

sun.jdbc.odbc.JdbcOdbcDriver

O “ó” do ODBC é maiúsculo… =)

Brigado amigo, era issu mesmo…

Brigadão mesmo :grin: