bom dia amigos…
fiz um aplicativo
que faz uma conexao com um banco sqlserver…
[code] // com esta conexao eu nao consigo… da uma falha de conexao tcpip
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
con1 = DriverManager.getConnection("MDADOS",
"ADMINISTRADOR","123");
// so consigo accessar utilizando uma fonte de dados a qual chamei de MDADOS
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
con1 = DriverManager.getConnection(
"jdbc:odbc:MDADOS", "ADMINISTRADOR", "123");[/code]
fiquei analisando o seguinte:
os parametros da fonde dados odbc sao os mesmos do sqlserverdriver
entao deve ter alguma coisa bloqueando no servidor…
porque o servidor tem realmente firewall, etc…
que tipo de bloqueio existe no servidor que libera a fonte de dados odbc e nao libera o sqlserverdriver…
o erro e de falha na conexao tcpip
acredito que sua string de conexão esta errada
deveria ser algo como
con1 = DriverManager.getConnection("jdbc:microsoft:sqlserver:MDADOS:[porta]",
"[usuario]","[senha]");
da uma olhada
http://support.microsoft.com/kb/313100/pt-br
desculpa acabei mandando novamente
Esse driver da Microsoft é meio bugado,melhor usar o jtds
Cara, eu costumo usar dessa forma:
Connection conexao;
ip=xxx.xxx.xxx.xxx:pppp;databaseName=Nomebanco
url = "jdbc:sqlserver://"+ip;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conexao=DriverManager.getConnection(url, login, senha );
Se o ODBC está concectando, você vai conseguir usando o JDBC pois os dois vão conectar pela mesma porta.
Isso resolve seu problema
Fonte: http://javaaberto.blogspot.com.br/2012/08/conectando-sql-server-em-java.html
[code]import java.sql.Connection;
public class ConDb{
private java.sql.Connection con = null;
private final String url = “jdbc:microsoft:sqlserver://”;
private final String serverName= “localhost”;
private final String portNumber = “1433”;
private final String databaseName= “dataBase”;
private final String userName = “sa”;
private final String password = “senha”;
// Informs the driver to use server a side-cursor,
// which permits more than one active statement
// on a Connection.
private final String selectMethod = "cursor";
// Constructor
public ConDb(){}
private String getConnectionUrl(){
return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";
}
public Connection getConnection(){
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
}catch(Exception e){
e.printStackTrace();
System.out.println("Error Trace in getConnection() : " + e.getMessage());
}
return con;
}
/*
Display the driver properties, database details
*/
public void displayDbProperties(){
java.sql.DatabaseMetaData dm = null;
java.sql.ResultSet rs = null;
try{
con= this.getConnection();
if(con!=null){
dm = con.getMetaData();
System.out.println("Driver Information");
System.out.println("\tDriver Name: "+ dm.getDriverName());
System.out.println("\tDriver Version: "+ dm.getDriverVersion ());
System.out.println("\nDatabase Information ");
System.out.println("\tDatabase Name: "+ dm.getDatabaseProductName());
System.out.println("\tDatabase Version: "+ dm.getDatabaseProductVersion());
System.out.println("Avalilable Catalogs ");
rs = dm.getCatalogs();
while(rs.next()){
System.out.println("\tcatalog: "+ rs.getString(1));
}
rs.close();
rs = null;
closeConnection();
}else System.out.println("Error: No active Connection");
}catch(Exception e){
e.printStackTrace();
}
dm=null;
}
private void closeConnection(){
try{
if(con!=null)
con.close();
con=null;
}catch(Exception e){
e.printStackTrace();
}
}
}[/code]