Ajuda com conexão sql

6 respostas
meyer

Galera estou tentado fazer uma conexão java com SQL Server mas esta dando o seguinte erro.

Deu Erro na Conexão com A Fonte de Dados: java.sql.SQLExeption: I/O Error: SSO Failed:Native SSPI library not loaded.Check the java.library.path system property

segue o código que to usando.

[code]package PACOTES_INTERFACE;

import java.sql.*;
import javax.swing.*;

public class ConexaoSqlServer
{
public static void main(String args[])
{
String driver = "net.sourceforge.jtds.jdbc.Driver";
String url = "jdbc:jtds:sqlserver://localhost:1433/Clientes";
String usuario = "";
String senha ="" ;
Connection conexao;
Statement statement;
ResultSet resultset;

try
{
Class.forName(driver);
conexao = DriverManager.getConnection(url,usuario,senha);
JOptionPane.showMessageDialog(null, "Conectou com Sucesso");
statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
/*resultset = statement.executeQuery("Select * From Clientes");

String lista_dados = "";
while(resultset.next())
{
lista_dados = lista_dados + "cod_cli .: " + resultset.getInt("cod_cli");
lista_dados = lista_dados + "\nnome_cli .: " + resultset.getString("nome_cli") +"\n";
}
JOptionPane.showMessageDialog(null, lista_dados);*/
}
catch(ClassNotFoundException Driver)
{
JOptionPane.showMessageDialog(null, "Driver não Localizado: " + Driver);
}
catch(SQLException Fonte)
{
JOptionPane.showMessageDialog(null, "Deu Erro na Conexão " + "com a Fonte de Dados: " + Fonte);
}
}

}

6 Respostas

jamirdeajr

Pelo que pesquisei este erro está relacionado com o uso da autenticação nativa windows com o driver JTDS, para isso é necessário que a dll ntlmauth.dll que está do jar do driver esteja acessível ao java. Copie esta dll de dentro do jar para jdk\jre\bin

http://thusithamabotuwana.wordpress.com/2012/01/22/connecting-to-sql-server-from-java/
http://stackoverflow.com/questions/4219968/java-sql-sqlexception-i-o-error-sso-failed-native-sspi-library

Boa sorte!

meyer

Copiei a dll mas continua dando o mesmo erro,

e agora oque será ?

meyer

Alguém pode me ajudar ?

jamirdeajr

Só confirmando, você está usando 'Windows authentication', não passando usuário e senha, certo ?

Nos links que passei e em outros dizia mesmo que incluir a Dll as vezes resolvia, mas nem sempre...

Notei que no seu fonte você passou usuário e senha vazios, mas não NULL, talvez você tenha omitido propositadamente, mas nos exemplos que vi para Windows authentication era utilizado sempre NULL. Faça um teste omitindo usuario e senha no getConnection:
package PACOTES_INTERFACE;

import java.sql.*;
import javax.swing.*;

public class ConexaoSqlServer
{
public static void main(String args[])
{
String driver = "net.sourceforge.jtds.jdbc.Driver";
String url = "jdbc:jtds:sqlserver://localhost:1433/Clientes";
String usuario = "";
String senha ="" ;
Connection conexao;
Statement statement;
ResultSet resultset;

try
{
  Class.forName(driver);
  conexao = DriverManager.getConnection(url);//omitido usuario e senha
  JOptionPane.showMessageDialog(null, "Conectou com Sucesso");

....
}

Se, por outro lado você está utilizando autenticação com usuário e senha, verifique se no SQLServer está habilitado esse modo. O Padrão é só habilitar Windows Authentication!

meyer

Fiz isso mas o erro continua.

santanna106

Alguém conseguiu resolver este problema?

Criado 30 de março de 2012
Ultima resposta 8 de abr. de 2014
Respostas 6
Participantes 3