Alguem saberia me dizer onde encontro o Drive do ODBC/JDBC
valeu
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:
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
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