Onde consigo o Drive do ODBC/JDBC

10 respostas
W

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

valeu

10 Respostas

D

procure no site do fabricante do seu banco

W

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

C

Já tentou na Microsoft ou no Google?!

[]s

A

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

:wink:

R

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!

D

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","","");

R

“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","","");

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

W

Pessoal ainda continua dando erro :cry:

vejam minha classe:

import java.util.<em>;

import java.awt.</em>;

import java.awt.event.<em>;

import javax.swing.</em>;

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&lt;=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 &lt;= 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:

R

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… =)

W

Brigado amigo, era issu mesmo…

Brigadão mesmo :grin:

Criado 19 de fevereiro de 2005
Ultima resposta 19 de fev. de 2005
Respostas 10
Participantes 6