Conexão com SQL Server 2005

8 respostas
N

Olá amigos, estou tendo um problema para fazer uma conexão com o banco, utilizando o driver da Microsoft. Quando meu programa vai fazer uma consulta, aparece uma mensagem dizendo que não abriu conexão(No suitable driver found for jdbc:sqlserver://192.168.0.65:1433/S8_Real;user=sa;password=1a2b43c4d5e6f*adm).

[code]package Conexao;
import java.sql.*;
import java.sql.SQLException;
import javax.swing.JOptionPane;
//import com.microsoft.sqlserver.jdbc.SQLServerDriver
public class conexao {

public static Connection conexao=null;//variavel de conexão com banco
public static Statement stmt=null;//variavel que apresenta estado do banco
public static ResultSet resultado=null;//resultado da consulta ficará nessa variavel
public static ResultSetMetaData metadata=null;
public static final String URL = "jdbc:sqlserver://192.168.0.65:1433/S8_Real;user=sa;password=1a2b3c4d5e6f*adm";//variavel para dizer cmqual servidor está se conectando
//jdbc:sqlserver://localhost:1433;databaseName=travel;selectMethod=cursor
//MÉTODO PARA ABRIR CONEXÃO COM BANCO DE DADOS

public void abre(){
try{
conexao = DriverManager.getConnection(URL);
stmt = conexao.createStatement();
}catch(SQLException ex){
JOptionPane.showMessageDialog(null,"Erro no comando de abrir conexão"+ex,"ERRO",JOptionPane.ERROR_MESSAGE);
}//FINALIZA METODO DE ABRIR CONEXÃO
}

//METODO PARA FECHAR CONEXÃO COM BANCO DE DADOS
public void fecha(){
try{
conexao.close();
stmt.close();
resultado.close();
}catch(SQLException ex){
JOptionPane.showMessageDialog(null,"Erro ao fechar conexão com o banco"+ex,"ERRO",JOptionPane.ERROR_MESSAGE);
}
}//FINALIZA METODO DE FECHAR CONEXÃO


//METODO PARA EFETUAR CONSULTA
public void consulta(String query){
try{
resultado = stmt.executeQuery(URL);
}catch(SQLException ex){
JOptionPane.showMessageDialog(null,"Erro no comando da consulta"+ex,"ERRO",JOptionPane.ERROR_MESSAGE);
}
}//FINALIZA METODO DE CONSULTA


//METODO PARA EFETUAR ALTERAÇÃO
public void altera(String query){
try{
stmt.executeUpdate(query);
JOptionPane.showMessageDialog(null,"Alteração eetuada com sucesso");
}catch(SQLException ex){
JOptionPane.showMessageDialog(null,"Erro no comando"+ex,"ERRO",JOptionPane.ERROR_MESSAGE);
}
}//FINALIZA METODO DE ALTERAÇÃO


//METODO PARA EFETUAR GRAVAÇÃO
public void salvar(String query){
try{
stmt.execute(query);
JOptionPane.showMessageDialog(null,"Salvo com sucesso");
}catch(SQLException ex){
JOptionPane.showMessageDialog(null,"Erro na operação salvar"+ex,"ERRO",JOptionPane.ERROR_MESSAGE);
}

}
O que estou querendo é o caminho das pedras, quero saber onde está o erro, ou se será o jeito usar o jTDS.Lembrando que sou um iniciante(problemas de iniciante).

8 Respostas

tondatto

O driver JDBC não está sendo encontrado pelo compilador.

Se está compilando direto no console, você deve referenciar o arquivo JAR do jdbc do SQLServer na compilação:

javac -classpath .;sqljdbc4.jar Conexao.java

Supondo que o JAR encontra-se na mesma pasta que sua classe.

Se está utilizando algum ambiente (Eclipse, Netbeans), procure referenciar o JAR no módulo de gerenciamento de Bibliotecas.

N

Que bom, adicionei a biblioteca e parece que deu certo. Parece que o ero agora fica por comta da porta.(Erro no comando de abrir conexão com.microsoft.sqlserver.jdbc.SQLServerException: O número da porta 1433/S8_Real não é válido.). Vou tentar aqui, e obrigado pela dica.

tondatto

Se S8_Real se refere ao nome da instância do SQLServer, você deve configurar da seguinte maneira:

jdbc:sqlserver://192.168.0.65:1433;instanceName=S8_Real;user=sa;password=1a2b43c4d5e6f*adm

ou inverter a barra:

jdbc:sqlserver://192.168.0.65:1433\S8_Real;user=sa;password=1a2b43c4d5e6f*adm
N

tondatto, me tira uma duvida. No banco tenho campos inteiros e strings.Nesse caso tenho que fazer uma consulta que me traz esses campos e eles seram apresentados na tela de layout. Mas ocorre um erro justamente nos campos inteiros devido ao gettext receber string, sendo que fiz a conversão para inteiro e dá erro. Me da uma luz ai.

tondatto

Neto,

Já que você está utilizando a classe ResultSet para armazenar a sua consulta ao banco, pode aproveitar os diversos gets para diversos tipos de dados que ela oferece. Por exemplo:
//METODO PARA EFETUAR CONSULTA
public void consulta(String query){
   try{
      resultado = stmt.executeQuery(query);       // no seu código, vc colocou URL no lugar de query. cuidado

      String numero = Integer.toString( resultado.getInt("[nomeColuna]" );

   }catch(SQLException ex){
      JOptionPane.showMessageDialog(null,"Erro no comando da consulta"+ex,"ERRO",JOptionPane.ERROR_MESSAGE);
   }
}//FINALIZA METODO DE CONSULTA
N

A consulta tá rolando beleza. Vou cuidar no restante, muito obrigado pela ajuda. :thumbup:

N

Tondatto, mas que coluna é essa? :?:

N

UP :roll:

Criado 23 de setembro de 2011
Ultima resposta 27 de set. de 2011
Respostas 8
Participantes 2