Galera é o seguinte, fiz uma conexão com um ODBC proprietário chamado FLEX ODBC para acessar um banco de dados DATAFLEX, ele utiliza uma variável de ambiente do Windows que crio chamada de DFPATH, com a grande ajuda de um colega aqui do fórum consegui pelo Java modificar esta variável dentro por dentro do Java, só que o que acontece é o seguinte, quando abro o programa em Java pela primeira vez clico no botão que criei e septo a variável para DFPATH=C:\Escritorio\01, ai o sistema lista direitinho o que tem no banco, então clico no segundo botão e ele muda a variável para DFPATH=C:\Escritorio\02, só que neste momento ele continua listando o que estava na variável 01, ele apenas assume a nova variável se eu fechar o netbeans e abrir novamente.
Então acredito que o sistema deva fechar de uma maneira total talvez pelo Windows um reset na fonte de dados ODBC do Windows, não sei, só sei que too pra pirar rsrsrsrsr.
Se alguém souber algo, por favor, aceito todas as ideias, abaixo mostro como conecto e pesquiso.
Grato.
Classe de Conexão
package BancoDeDados;
import java.sql.*;
public class DAO {
public Connection con = null;
public PreparedStatement pstmt;
public ResultSet rs;
public void OpenDatabase() throws Exception {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:Sgp", "", "");
System.out.println("Abriu");
}
public void CloseDatabase() throws Exception {
if (con != null) {
con.close();
System.out.println("Fechou");
}
}
}
Metodo que gera a Lista
public List<Fornecedor> getLista() throws SQLException, Exception {
OpenDatabase();
String sql = "select top 1 * from stab46";
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
List<Fornecedor> minhaLista = new ArrayList<Fornecedor>();
while (rs.next()) {
Fornecedor a1 = new Fornecedor();
a1.setFIELD_2(rs.getString("RSOCIAL"));
minhaLista.add(a1);
}
CloseDatabase();
return minhaLista;
}