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… 
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

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
, e acredito que nao seja nenhum bixo de 7 cabeça, mas to me enroscando nisso.
Obrigado pela atenção 
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
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í !!