Conexão com SQLServer [Resolvido]

13 respostas
G

Pessoal, estou com uma tremenda dificuldade pra conectar com um banco SQLServer, via jdbc;

Baixei o jar do jTDS e tentei conectar te tantas forma que ja perdi a conta…

minha conexao esta assim

private static final String URL = jdbc:jtds:sqlserver://192.168.0.1:1433/bancoteste”;

private static final String DRIVER = net.sourceforge.jtds.jdbc.Driver;

private static final String USUARIO = teste;

private static final String SENHA = teste

ja tentei colocar na URL pra conectar assim:
jdbc:jtds:sqlserver://192.168.0.1:1433;instance=SQLEXPRESS;databaseName=bancoteste;user=teste;password=teste;charset=utf-8;domain=

e nada…
ele sempre da uma exception dizendo:
Network error IOException: Connection refused: connect

quando uso o instance=SQLEXPRESS
o erro é

Unable to get information from SQL Server: 192.168.0.7.

minha classe inteira ta assim…:

public class teste {

        private static final String URL = "jdbc:jtds:sqlserver://192.168.0.1:1433/bancoteste";
        private static final String DRIVER = "net.sourceforge.jtds.jdbc.Driver";
        private static final String USUARIO = "teste";
        private static final String SENHA = "teste"
	private static String query = "select name , id from sysobjects";

	public static void main(String[] args) {
		try {
			Class.forName(DRIVER);
			System.out.println("Conectando a Banco de Dados...");
			Connection con = DriverManager.getConnection(URL, USUARIO, SENHA);
			System.out.println("conectou");
			Statement stmt = con.createStatement();

			// Criando a instrução a partir do SELECT que está dentro da
			// variável query
			ResultSet rs = stmt.executeQuery(query);

			System.out.println("Lista de linhas da tabela sysobjects:");

			// Fazendo um loop para mostrar tudo o que foi retornado do banco
			while (rs.next()) {

				// Obtendo o campo name em um string
				String s = rs.getString("name");
				// Obtendo o campo id em um inteiro
				int i = rs.getInt("id");
				System.out.println(s + " " + i);
			}

			// Fechamdno a instrução e a conexão
			stmt.close();
			con.close();

		} catch (Exception e) {
			e.printStackTrace();
			System.out.println(e.getMessage());
		}
	}
}

alguem teria uma idéia ??

Valew…

13 Respostas

G

Opa verifica esse ip, o banco é local?

G

nao… esta na rede…
meu eu consigo acessar a maquina tranquilo…
inclusive por uma outra aplicação em delphi eu consigo conectar ao banco, usando o mesmo login e senha…

att

G

Tente colocar localhost no lugar do IP da máquina.

G

deu o mesmo erro…
se eu deixo com o “instance=SQLEXPRESS” na URL ele da o erro:

Server localhost has no instance named SQLEXPRESS.

Se eu tiro ele da:

Network error IOException: Connection refused: connect

att

G

verifica o servername do sqlserver

G

desculpe a minha ignorancia…, eu pouco entendo de sqlserver.

Como e onde eu faço isso ?

G

Quando vc abre o Manager Studio ele mostra uma tela de logim com Server Name, usuário e senha, ai vc verifica como vc conecta. Depois substitui no teu código ao invés de IP

G

ok… achei…
mas tentei colocar o nome… mas tbm nao deu…!!

Será que é alguma configuração do banco ??

o que me deixa curioso, é que de outra aplicacao eu consigo conectar normal…
sem precisar mudar nada no banco…!!

G

Pode ser configuração no banco a respeito de aceitar outros acessos de fora, pode verificar o firewall tbm pra ver se tem direito nessa porta.

G

Olá verifiquei tudo isso. e realmente não é…
ainda não consegui solucionar…

valew

G

Pessoal… só para registrar e ajudar quem precisar…
consegui resolver…

só faltava um parametro a string url

namedpipe=true

ficando

private static final String URL = "jdbc:jtds:sqlserver://192.168.0.1/bancoteste;namedpipe=true";

Valew pela atenção galera…!!

W

Ola guilherme_ha estou com um problema semelhante ao que voce teve ao tentar conectar ao banco de dados sql server.

ja tentei varias opcoes, inclusive a que voce postou como solucao para o seu problema.

quando eu tentei fazer com a sua sugestao eu recebe uma mensagem diferente.

java.sql.SQLException: Network error IOException: \\localhost\pipe\sql\query (Você não foi conectado porque existe um nome duplicado na rede. Vá para 'Sistema' no 'Painel de controle' para alterar o nome do computador e tente novamente) at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:385) at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50) at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182) at java.sql.DriverManager.getConnection(DriverManager.java:620) at java.sql.DriverManager.getConnection(DriverManager.java:200) at br.com.linkzsistemas.linkztraining.util.RoboMigracaoMerito.main(RoboMigracaoMerito.java:55) Caused by: java.io.FileNotFoundException: \\localhost\pipe\sql\query (Você não foi conectado porque existe um nome duplicado na rede. Vá para 'Sistema' no 'Painel de controle' para alterar o nome do computador e tente novamente) at java.io.RandomAccessFile.open(Native Method) at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233) at java.io.RandomAccessFile.<init>(RandomAccessFile.java:118) at net.sourceforge.jtds.jdbc.SharedLocalNamedPipe.<init>(SharedLocalNamedPipe.java:61) at net.sourceforge.jtds.jdbc.ConnectionJDBC2.createNamedPipe(ConnectionJDBC2.java:467) at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:307) ... 5 more

ou seja diz que eu tenho um nome duplicado na rede. e pede para fazer um passo-a-passo que por sua vez eu ja o fiz. so que o erro permanece o mesmo.

I

guilherme_ha:
Pessoal… só para registrar e ajudar quem precisar…
consegui resolver…

só faltava um parametro a string url

namedpipe=true

ficando

private static final String URL = "jdbc:jtds:sqlserver://192.168.0.1/bancoteste;namedpipe=true";

Valew pela atenção galera…!!

Valeu, Vc mandou bem! Me salvou hoje!

Criado 16 de outubro de 2009
Ultima resposta 20 de dez. de 2011
Respostas 13
Participantes 4