Erro na ligação ao banco de dados

1 resposta
L

Boas pessoal tenho o seguinte codigo para me ligar a uma base de dados que esta em SQL server 2000

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JFrame;

public class myapp { 
    
//public JFrame frame;
  public static void main(String[] args) { 
      myapp application = new myapp()  ;
    
     
             String sql_query = "select eMail from clientes where Conta ='0001-017949-043' ";
             try
            {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                Connection connection = DriverManager.getConnection("jdbc:odbc:servidor1//NomeDaBaseDeDados:1433","user", "password");

                PreparedStatement prepared_statement = connection.prepareStatement(sql_query);               
                ResultSet rs = prepared_statement.executeQuery();
               
               if( rs.next())
                { 
                
               
                  System.out.println("Sucesso");
                  System.out.println(rs.getString(1));                
              
                }
                 else
                {
                 System.out.println("Insucesso");
                }

connection.close();
System.exit(0);
             }catch (Exception ex)
             
                {
               ex.printStackTrace();
                 //System.out.println("Não Apanhou os dados na base de dados porque :"+ ex);
                 

                }

E estou recebndo o seguinte erro :

java.sql.SQLException: [Microsoft][Gestor de controladores de ODBC] O nome da origem de dados não foi encontrado e não foi especificado nenhum controlador predefinido
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
        at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3074)
        at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
        at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
        at java.sql.DriverManager.getConnection(DriverManager.java:525)
        at java.sql.DriverManager.getConnection(DriverManager.java:171)
        at teste.myapp.main(myapp.java:20)

Algume me pode dar uma ajuda com isso ?

Obrigado desde ja !

1 Resposta

MarcioTavares

[editado]

Luis, verifique se a sua string de conexão está correta, incluindo o apontamento para o servidor e o banco de dados específico.

Para não ter que ficar alterando e compilando o código toda hora, sugiro que, em um primeiro momento, você utilize um cliente de banco de dados específico, como o DbVisualizer. Com ele vc poderá utilizar a interface comum de conexão dele para poder identificar qual é a string de conexão correta para o seu caso, e aí sim inserí-la no seu aplicativo. Basta incluir os dados do seu banco no wizard, que ele monta a string correta para você.

Após isso, sugiro a você remover essas strings de conexão (a url com servidor, porta, banco, usuário e senha) para fora do seu aplicativo, para que você possa alterar os dados livremente sem ter que recompilar tudo a cada simples alteração. Leitura recomendada:

Artigos sobre JDBC e bancos de dados
http://www.guj.com.br/artigos.jsp#[telefone removido]

Retirando o SQL do seu código Java
http://www.guj.com.br/java.tutorial.artigo.115.1.guj

Properties
http://www.guj.com.br/java.tutorial.artigo.35.1.guj

E, em um último momento, sugiro que você não use o ODBC para se conectar ao banco de dados. Caso seu banco de dados seja o SQL Server (não consegui identificar pelo código postado) use o driver JTDS para essa função.

E mais uma coisa: caso seu banco de dados não seja SQL Server e sim Access, troque-o imediatamente por outro banco de dados de verdade, como MySql, Hsqldb, Derby, todos gratuitos e muito superiores ao projeto de banco Access.

Criado 21 de agosto de 2006
Ultima resposta 21 de ago. de 2006
Respostas 1
Participantes 2