Olá pessoal, estou com o seguinte problema:
Estou tendo que trabalhar com o access, não tenho como fugir.
Gostaria de saber se há alguma possibilidade de se criar uma fonte de dados(odbc) em runtime.
Apareceu esta necessidade porque estou trabalhando com importação e exportação de dados.
O usuário irá selecionar uma base de dados access, e apartir deste banco (que poderá estar
em qualquer diretório da máquina), ele irá exportar os dados desse banco para a base
de dados oracle. Então eu acho inviável orientar o usuário a criar uma fonte de dados apenas
para exportar os dados (que poderá não ser mais usada), visto também que poderá haver 'n’
banco de dados (access) que poderão ser exportados, o usuário teria então que criar uma
fonte de dados para cada base de dados access.
Então eu pensei que se pudesse haver algum meio de se criar e destruir a fonte de dados
em runtime seria uma boa (pode ser loucura).
Isto é possível?
Alguém tem outra idéia?
Eis aí mais ou menos o que eu quero fazer:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
public class Class1 {
public Class1() {
super();
}
public static void main(String[] args) {
//String dataSourceName = "nome_fonte";
String dataSourceName = "C://Documents and Settings//levi//Meus documentos//Projetos java Eclipse//TesteConexoesSimultanea//teste.mdb";
String dbURL = "jdbc:odbc:" + dataSourceName;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(dbURL, "","");
Statement s = con.createStatement();
s.execute("insert into BACIA values(10,10,10,10,10,10,'10','04/02/2010','04/02/2010',10)");
s.execute("select RegistroID from Bacia");
if (!con.isClosed()) {
JOptionPane.showMessageDialog(null, "A conexão está aberta");
} else {
JOptionPane.showMessageDialog(null, "A conexão está fechada");
}
ResultSet rs = s.getResultSet();
if (rs != null)
while ( rs.next() )
{
System.out.println("Data from RegistroID: " + rs.getString(1) );
}
s.execute("delete from BACIA where RegistroID = 10");
s.close();
con.close();
//neste ponto eu quero destruir a fonte
}
catch (Exception err) {
err.printStackTrace();
System.out.println( "Error: " + err );
}
}
}