Erro na tentativa de conexão com o SQLServer 2008

5 respostas
Rafael_Nascimento

Olá, pessoal!!
Minhas tentativas de conexão com o SQLServer estão dando o seguinte erro: [Microsoft][ODBC Driver Manager] Comprimento inválido da cadeia de caracteres ou buffer

o erro ocorre na linha 14.

Detalhe: a classe roda normal no Windows XP, isso está ocorrendo só quando tento rodar no Windows 7

Preciso descobrir o que está ocorrendo. Se alguém puder ajudar fico muito agradecido!!

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexao {

    private Connection connection;

    public Conexao(){

        try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String url = "jdbc:odbc:bd_java";
            connection = DriverManager.getConnection(url);

            System.out.println("conexao ok ********");
        }
        catch(ClassNotFoundException e){
            System.out.println(" **** de Conexao: " +e.getMessage());
        }
        catch(SQLException e){
		e.printStackTrace();
            //System.out.println(" **** de Conexao: " +e.getMessage());
        }
    }

    public Connection getConnection() {
        return connection;
    }

    public static void main(String[] a){
		new Conexao();
    }
}

5 Respostas

pedruhenrik

Rafael,

vê se ajuda:

http://www.guj.com.br/java/221519-formulario-e-sql
http://www.guj.com.br/java/227462-exibir-dados/2

att,

Rafael_Nascimento

pedruhenrik, obrigado, eu li os dois tópicos, mas não ajudou muito. No primeiro link, a classe de conexão do Anderson está praticamente igual a minha e não ficou claro como o problema do java.sql.SQLException: [Microsoft][ODBC Driver Manager] Comprimento inválido de cadeia de caracteres ou de buffer fora resolvido.

No segundo post, embora fosse o mesmo erro, ele resolveu mudando o Driver de conexão porque estava usando o MySQL. Mas no meu caso não dá, porque estou usando o SQLServer e preciso fazer a conexão via JDBC.

O que mais me intriga é que a mesma classe está rodando no WindowsXP, mas não executa no Windows 7.

estou meio perdido xD…

pedruhenrik

isso realmente é intrigante.

somos 2 hahaha

já experimentou o driver jtds???

eu só conseguia conectar com ele, não lembro pq…

boa sorte!

att,

Rafael_Nascimento

pelo visto muitas outras pessoas tiveram o problema do Mircrosoft Driver Manager Invalid String or Buffer Length JDBC ODBC como aqui por exemplo: http://www.coderanch.com/t/491407/JDBC/java/Mircrosoft-Driver-Manager-Invalid-String onde o problema é idêntico.

É uma questão nativa do Windows 7 64 bit

por enquanto, para quem tiver o mesmo problema, as únicas soluções são ou trocar de sgbd ou trocar de driver, utilizando o jtds-1.2.5, por exemplo, como eu fiz.

abraços.

DanielSalles

Rafael Nascimento tbm estou com o mesmo problema. :?
Uso Netbeans 7.2, Win7 e jdk6…

static public Connection getConnection() {

        try {

            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            String url     = "jdbc:jtds:sqlserver://localhost:1433/meuBanco";
            String user = "";
            String password = "";
            conexao = DriverManager.getConnection(url, user, password);

        } catch (ClassNotFoundException erroDriver) {
            
            System.out.println("DRIVER NÃO ENCONTRADO.");
            System.out.println(erroDriver);
        } catch (SQLException erroConexao) {
            
            System.out.println("ERRO NA CONEXÃO DO BANCO DE DADOS JTDS");
            System.out.println(erroConexao);
        } 
        
        if (conexao != null) {
            
            System.out.println("CONEXÃO COM JTDS REALIZADA COM SUCESSO!");   
        }
        
        return conexao;
    }

Ao criar a conexão pelo Netbeans ele acusa que o driver é inválido e mostra a msg: failed
Por favor poderia me ajudar? Obrigado :thumbup:

Criado 14 de fevereiro de 2011
Ultima resposta 22 de mar. de 2013
Respostas 5
Participantes 3