Criando uma conexão através do Driver ODBC

Java

09/04/2009

import java.sql.*;

   public class simpleConnection { 
       public static void main(String args[]) { 
          try { 
             //Registrando o driver:
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); 
             //Estabelecendo a conexão através do ODBC criado no Painel de Controle:
             Connection con = DriverManager.getConnection("jdbc:odbc:Inventory","","");
             //Criando um objeto Statement para enviar requisições SQL para o Banco de Dados 
             Statement stmt = con.createStatement();
             //Executando SQL:
             stmt.execute("SELECT * FROM objects");
             //Adquirindo através de um objeto ResulSet, os registros retornados pela SQL:
             ResultSet results = stmt.getResultSet();
             //Fechando a conexão:
             con.close();
          } catch(Exception e) { 
             System.out.println(e); 
          }
       }
    }
Se você não sabe como criar uma conexão ODBC, veja este tutorial http://www.macoratti.net/dsn_acc.htm Até + Dalton Milkvicz de Camargo dalton@javafree.com.br
Tutoriais Admin

Tutoriais Admin

Curtidas 0

Respostas

Joaotacio

Joaotacio

09/04/2009

este tutorial me ajudou muito, porem ao executar uma consuilta mais avançada esta gerando erro. a consulta seria a seguinte, supondo que eu tenho duas tabelas, pessoas e cursos, cursos tem uma chave estrageira herdada de pessoas. caso eu desejar saber todas os cursos de uma pessoa: SELECT P.NOME, C.CURSO FROM PASSOAS AS P, CURSOS AS C WHERE P.CODIGO=C.DODIGO esta consulta sempre gera um erro. Muito obrigado!
GOSTEI 0
Lucas Teixeira

Lucas Teixeira

09/04/2009

[quote="joaotacio"]este tutorial me ajudou muito, porem ao executar uma consuilta mais avançada esta gerando erro. a consulta seria a seguinte, supondo que eu tenho duas tabelas, pessoas e cursos, cursos tem uma chave estrageira herdada de pessoas. caso eu desejar saber todas os cursos de uma pessoa: SELECT P.NOME, C.CURSO FROM PASSOAS AS P, CURSOS AS C WHERE P.CODIGO=C.DODIGO esta consulta sempre gera um erro. Muito obrigado!
Qual erro está sendo gerado?? Qual seu Banco de dados?
GOSTEI 0
Joaotacio

Joaotacio

09/04/2009

o tutorial no topo da pagina esta funcionando perfeitamente, consegui executar consultas concatenando tabelas, porem nao consigo mostrar a consulta. meu codigo e:
try { 
             //Registrando o driver: 
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); 
             //Estabelecendo a conexão através do ODBC criado no Painel de Controle: 
             Connection con = DriverManager.getConnection("jdbc:odbc:Academico","",""); 
             //Criando um objeto Statement para enviar requisições SQL para o Banco de Dados 
             Statement st = con.createStatement();
             //Executando SQL: 
             String s = "SELECT p.NOME, d.nome FROM PROFESSORES as p, DEPARTAMENTO as d where p.COD_DEPT=d.codigo"; 
             ResultSet rs = st.executeQuery(s);
		     while (rs.next()){
			   System.out.println(rs.getString("p.NOME") + "-" + rs.getString("d.NOME"));
		     }
             //Fechando a conexão: 
             con.close(); 
          } catch(Exception e) { 
             System.out.println(e); 
          } 
O erro que esta sendo gerado é: java.sql.SQLException: Column not found o ocorre ao mostrar na tela o conteudo, caso eu mostrar apenas nome como abaixo da certo:
while (rs.next()){
  System.out.println(rs.getString("NOME"));
}
porem so é retornado nome dos professores. Como faço para mostrar o nome do departamento? Muito obrigado, Feliz Pascoa pra todos!
GOSTEI 0
Lucas Teixeira

Lucas Teixeira

09/04/2009

[quote="joaotacio"]o tutorial no topo da pagina esta funcionando perfeitamente, consegui executar consultas concatenando tabelas, porem nao consigo mostrar a consulta. meu codigo e: try { //Registrando o driver: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); //Estabelecendo a conexão através do ODBC criado no Painel de Controle: Connection con = DriverManager.getConnection("jdbc:odbc:Academico","",""); //Criando um objeto Statement para enviar requisições SQL para o Banco de Dados Statement st = con.createStatement(); //Executando SQL: String s = "SELECT p.NOME, d.nome FROM PROFESSORES as p, DEPARTAMENTO as d where p.COD_DEPT=d.codigo"; ResultSet rs = st.executeQuery(s); while (rs.next()){ System.out.println(rs.getString("p.NOME") + "-" + rs.getString("d.NOME")); } //Fechando a conexão: con.close(); } catch(Exception e) { System.out.println(e); } O erro que esta sendo gerado é: java.sql.SQLException: Column not found o ocorre ao mostrar na tela o conteudo, caso eu mostrar apenas nome como abaixo da certo: while (rs.next()){ System.out.println(rs.getString("NOME")); } porem so é retornado nome dos professores. Como faço para mostrar o nome do departamento? Muito obrigado, Feliz Pascoa pra todos!
O erro que esta sendo gerado é: java.sql.SQLException: Column not found
traduzindo: "Coluna não encontrada" :!: Verifique o nome da coluna, lembre-se que dependendo do banco, 'COLUNA' é diferente de 'coluna' :!:
GOSTEI 0
Joaotacio

Joaotacio

09/04/2009

Muito grato pela ajuda, estou utilizando o numero ao invez de nomes while (rs.next()){ System.out.println(rs.getString(1)); }
GOSTEI 0
Gustavo Valerio

Gustavo Valerio

09/04/2009

tentar no select fazer isso -> SELECT p.NOME as nomeProf, d.nome as nomeDep FROM PROFESSORES as p, DEPARTAMENTO as d where p.COD_DEPT=d.codigo obs: há 2 colunas com mesmo nome :) while (rs.next()){ System.out.println(rs.getString("nomeProf")); System.out.println(rs.getString("nomeDep")); }
GOSTEI 0
Leonardo Oliveira

Leonardo Oliveira

09/04/2009

legal!!!
GOSTEI 0
Eduardo Pessoa

Eduardo Pessoa

09/04/2009

funciona com qualquer banco?
GOSTEI 0
POSTAR