Statement nao quer funcionar

Tenho uma classe responsavel apenas pela conexao com o banco, classe “Conexao” funciona blzinha,

Tenho uma outra classe “Controlador” e nessa classe eu crio um objeto Conexao funciona blz compila e tudo, mas na hora que executa e chega na linha em que eu tento criar o statement dah uma exception

Trecho da classe Controlador:

try
{
Conexao conectar = new Conexao();
System.out.println(“Conectou no Banco”);
stmt = conectar.con.createStatement(); //ERRO AKIIIIIIIIII
System.out.println(“criou statement”);
ResultSet rs = stmt.executeQuery(SQL);

}

Exception gerada:

“Conectou no banco
java.sql.SQLException: General error
at sun.jdbc.odbc.JdbcOdbc.throwGenericSQLException JdbcOdbc.java:6235)
at sun.jdbc.odbc.JdbcOdbc.SQLAllocStmt(JdbcOdbc.java:163)
at sun.jdbc.odbc.JdbcOdbcConnection.createStatement(JdbcOdbcConnection.j
ava:408)
at sun.jdbc.odbc.JdbcOdbcConnection.createStatement(JdbcOdbcConnection.j
ava:391)
at Controle.conecta(Controle.java:44)
at Controle.(Controle.java:17)
at Controle.main(Controle.java:85)
Press any key to continue…”

alguem pode dar um help, ou entao uma outra solucao??

Não seria
Statement stmt = conexao.createStatement();

[quote=“pacheco”]Não seria
Statement stmt = conexao.createStatement();[/quote]

O objeto é “conectar” e utiliza o “Connection con” da classe Conexao, por isso uso

stmt = conexao.con.createStatement();

até tentei fazer como vc falou mas nem rolou… a nao ser que nao entendi… :frowning:

Eu posso estar errado mas pelo que me parece é que o problema esta:
Conexao conectar = new Conexao();

e não aqui:
stmt = conectar.con.createStatement(); //ERRO AKIIIIIIIIII

pois o erro só dá aí pois stmt pois é a primeira vez que vc tenta usar o conectar …

ou seja o que quero dizer é se não conectar o erro só vai aparecer no stmt = conectar.con…

posso estar errado mas não custa olhar

:smiley:

Blz?

pacheco, será q vc nao teria um exemplo de como utilizar o statement fora de uma classe conexao ? Não estou conseguindo ja mudei e tentei de varias formas… ja to ficando careca :smiley: , e acredito que nao seja nenhum bixo de 7 cabeça, mas to me enroscando nisso.

Obrigado pela atenção :smiley:

no seu principal …

private void conectar() {
BancoDeDados banco= new BancoDeDados();
banco.setSenha(txtSenha.getText());
banco.setURL(txtURL.getText());
banco.setUsuario(txtUsuario.getText());
if (banco.conectar()){
lblStatus.setText(“Conectou”);
// ai sim vc faz o stmt
}
else{
lblStatus.setText(“Não Conectou”);
}
}

//-------------------
import java.sql.*;
public class BancoDeDados {
private boolean conectado;
private Connection conexao;
private String url=“jdbc:microsoft:sqlserver://xxxxxxxx:1433”;
private String usuario=“xxxxxxxx”;
private String senha=“xxxxxxx”;

public boolean getConectado() {
	return conectado;
}

public void setUsuario(String strgeral) {
	usuario = strgeral;
}

public void setURL(String strgeral) {
		url = strgeral; 
	}

public void setSenha(String strgeral) {
	senha = strgeral; 
}

public Connection getConexao() {
	if (!conectado) 
		if (!this.conectar())
			return null;
	return conexao;
}

public boolean conectar() {
	try {
		Class.forName("xxxxxxxxxxxxxxxxx");
		conexao = DriverManager.getConnection(url, usuario, senha);
		conectado = true;
	} catch(ClassNotFoundException ex) {
		ex.printStackTrace();
		conectado = false;
		return false;
	} catch (SQLException ex1) {
		ex1.printStackTrace();
		conectado = false;
		return false;
	}
	
	return true; 
}

public boolean desconectar() {
	try {
		conexao.close();
		conectado = false;
		return true;
	} catch (SQLException ex2) {
		ex2.printStackTrace();
		return false;
	}
}

}

não sei se ajuda qualquer coisa posta aí

pacheco

:smiley: Kara, axei o bendito erro, era coisa de pia pançudo hehehehe o pior é que olhei varias vezes mas nem me liguei,

era o seguinte: na minha classe Conexao tinha o Try-catch-finnaly e no finnaly eu tava fechando a conexao, nao dah pra acreditar, perdi algumas horas por uma coisa q tava na minha frente, mas faz parte do aprendizado.

obrigado pela sua ajuda, foi muito util, me fez refazer o codigo e encontrar o erro.

Abraços

não foi nada quando precisar estamos aí !!