Conectar ao SQL server 2005 [Resolvido]

Boa tarde, estou precisando fazer uma conexão em uma base de dados SQL Server, de um sistema que utilizamos na empresa, mas não estou conseguindo. Estou fazendo o seguinte:

public void concectaProsoft() { try { Class.forName("net.sourceforge.jtds.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:jtds:sqlserver://srvfinanceiro/SQLEXPRESS:1433;Conemp;user=***;password=***"); System.out.println("Conexão com o Banco estabelecida com sucesso"); } catch (SQLException ex) { ex.printStackTrace(); System.out.println("Falha ao Conectar ao Banco"); } catch (Exception e) { e.printStackTrace(); System.out.println("Falha ao Conectar ao Banco"); } }

mas quando eu executo o metodo obtenho o seguinte erro:

run: java.sql.SQLException: Network error IOException: Connection refused: connect at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:410) at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50) at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:207) at dao.daoProsoft.concectaProsoft(daoProsoft.java:17) at wpdtoprosoft.Main.main(Main.java:10) Caused by: java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:525) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) Falha ao Conectar ao Banco Prosoft at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:307) at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:257) at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:311) ... 6 more CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

Estou usando o driver jtds-1.2.5, alguem tem ideia do que fazer?

Tenta assim:

Isso supondo que srvfinanceiro é o nome do seu servidor e SQLEXPRESS o nome da sua base de dados no MS-SQL

Marcelo valeu pela ajuda, fiz como vc disse mas ainda assim tenho o mesmo erro.

E o servidor está rodando mesmo?
Usuário e senhas estão corretos?
Sua máquina tem acesso liberado pra essa máquina (pra testar isso faça um ping srvfinanceiro, e um telnet srvfinanceiro 1433)?
Voce consegue se logar usando o Query Analyzer e tudo mais ?

Opa marcelo, o erro era a porta que está configurada pra 1041, alterei mas estou tendo outro erro que me parece ser de altenticação, será que é isso mesmo? Segue o erro:

run: java.sql.SQLException: Não é possível abrir o banco de dados "SQLEXPRESS" solicitado pelo logon. Falha de logon. at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368) at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2820) at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2258) Falha ao Conectar ao Banco Prosoft at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:603) at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:345) at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50) at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:207) at dao.daoProsoft.concectaProsoft(daoProsoft.java:17) at wpdtoprosoft.Main.main(Main.java:10) CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

E esse banco existe de fato ?

Sim, ele existe, esta em produção com um sistema rodando neste momento. Eu fiz uma conexao pelo Management Studio Express, com o nome de usuario e senha que tenho e ele logou sem problemas. Consigo ler as tabelas e dados no banco.

Mas você está abrindo o Management Studio da sua própria máquina né ? Não tá fazendo nenhuma conexão por área de trabalho remota, etc etc ?

E também rodando o sistema em questão na sua própria máquina, correto ?

Ops… Falha minha, o nome do banco é master, :oops: ai não conectava mesmo. Mas valeu pela ajuda.

Detalhes, detalhes… :smiley:

Acontece… :roll:

Ah, marque como resolvido, ok? :wink:

Estou com outro problema, não consigo ler as tabelas, criei o seguinte metodo:

public void pesquisaTodosClientes() throws SQLException { PreparedStatement stmt = this.conn.prepareStatement("select * from CadClientes"); stmt.execute(); rs = stmt.getResultSet(); }

Ai estou tendo o seguinte erro:

run: Conexão com o Banco Prosoft estabelecida com sucesso java.sql.SQLException: Nome de objeto 'CadClientes' inválido. at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368) at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2820) at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2258) at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:632) at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:584) at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:546) at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.execute(JtdsPreparedStatement.java:558) at dao.daoProsoft.pesquisaTodosClientes(daoProsoft.java:30) at wpdtoprosoft.Main.main(Main.java:16) Exception in thread "main" java.lang.NullPointerException at wpdtoprosoft.Main.main(Main.java:23) Java Result: 1 CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

Parece que a tabela não existe no meu bd mas quando eu entro pelo Management Studio eu vejo la a tabela. Tenho uma duvida tambem porque todas as tabelas do banco começam com dbo. seguido do nome da tabela, ai eu tentei colocar o dbo. na query de consulta mas obtive o mesmo erro. Afinal como faço consultas no SQL Server?

Acho que é problema de permissão na tabela… se você não tiver permissão, não vai dar pra fazer select’s, update’s, nada… faça o seguinte, peça para alguem que tenha uma conta de administrador do banco rodar um script de GRANT pra você:

GRANT SELECT ON CadClientes TO usuario_que_vc_usa // pra dar permissao de Select, ou GRANT ALL ON CadClientes TO usuario_que_vc_usa // pra dar permissao total... select, update, etc

Acho que não é permissão por que eu uso a senha de aministrador do bd.

Edit.

Que é a mesma senha que utilizo no Management Studio.

Consegui…
O meu erro era buscar somente pelo nome da tabela, pra funcionar tem que colocar o nome do schema.dbo.nome_tabela. ficou assim:

public void pesquisaTodosClientes() throws SQLException { PreparedStatement stmt = this.conn.prepareStatement("select * from Conemp_empres_01.dbo.CadClientes"); stmt.execute(); rs = stmt.getResultSet(); }

Fica ai a dica pra quem tiver um problema parecido.