Conexão com SQLServer

3 respostas
R

Pessoal to com problema pra conseguir criar uma conexao com o MSDE… eu já instalei ate O SP4 e nao to conseguindo estabelecer a conexao… quando eu executo na linha de comando o netstat -an não tem nenhuma porta :1433… tem essas:

TCP 127.0.0.1:10110 0.0.0.0:0 LISTENING
TCP 192.168.1.7:139 0.0.0.0:0 LISTENING

o meu codigo é o seguinte:

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

public class teste {
	

	/**
	 * @param args
	 * @throws SQLException 
	 */
	public static void main(String[] args) throws SQLException {
		// TODO Auto-generated method stub
		
		try {
			Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
			
			Connection con = (Connection) 
DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.1.7:139;User=sa;Password=sa");
			
			Statement stmt = ((java.sql.Connection) con).createStatement();
			
			ResultSet result = stmt.executeQuery("select * from users");
			
			while (result.next()) {
				System.out.println(result.getString(2));
			}
				
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}

o Erro que ta dando:

Exception in thread “main” java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]End of stream was detected on a read.

será que alguem pode me ajudar???
values :lol:

[color=darkred]Mensagem do moderador:

  1. Bem vindo ao GUJ
  2. Use as tags Code para que seu código apareça corretamente
  3. Editei o título porque eu não tenho a menor idéia do que seja MSDE e SQLServer conheço
  4. Acostume-se a não escrever linhas de código muito longas (mais de 80 caracteres) pois fica difícil de ler ou imprimir.
    [/color]

3 Respostas

Pedrosa

Primeira dica use o driver jtds que é melhor que o da Micrsoft.

Exemplo:

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

public class ConnectionFactory { 
	private static final String url = "jdbc:jtds:sqlserver://SERVIDOR/NOMEBASE";
	private static final String driver = "net.sourceforge.jtds.jdbc.Driver";
	private static final String usuario = "user";
	private static final String senha = "password";
	
	
	public static Connection getConnection() throws SQLException {
		try {
			Class.forName(driver);
			return DriverManager.getConnection(url, usuario, senha);
		} catch (ClassNotFoundException e) {
			throw new SQLException(e.getMessage());
		}
	}
	public static void main(String[] args) {
		try {
			Connection con = ConnectionFactory.getConnection();
	
			String query = "SELECT * FROM tabela";
			
			PreparedStatement stmt = con.prepareStatement(query);
			ResultSet rs = stmt.executeQuery();
			while (rs.next()) {
				System.out.println("CAMPO1" + rs.getString(1));
				
			}
		
		}catch (Exception e) {
			e.printStackTrace();
		}	
	
	}

	
}
R

blz testei a classe e agora da uma exeção:

Network error IOException: Connection refused: connect

at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:372)

at net.sourceforge.jtds.jdbc.ConnectionJDBC3.(ConnectionJDBC3.java:50)

at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:178)

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at teste2.getConnection(teste2.java:17)

at teste2.main(teste2.java:24)

Caused by: java.net.ConnectException: Connection refused: connect

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:289)

at net.sourceforge.jtds.jdbc.SharedSocket.(SharedSocket.java:250)

at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:297) 6 more

putz nao aguento mais esse MSDE!!! agora tipo… o driver ta funcionando ( tanto o da microsoft como o do jtds ) é alguma frescura com a porta ou com o banco… alguem tem alguma outra ideia do que possa ser ? :smiley: valeu!!!

J

Caro rccvalle,

Por padrao o MSDE não permite conexoes tcp/ip, na instalacao tem que espcificar o parametro disablenetworkprotocols = 0, feito isso ele permite conexoes tcpip.

Talves seja por isso que o netstat não mostra a porta do Sql Server.

Abraço.

Criado 7 de setembro de 2006
Ultima resposta 10 de set. de 2006
Respostas 3
Participantes 3