Pessoa estou com um problemasso, estou tentando cruzar 2 bases só que esta dando dando um erro que nunca vi e nao achei em lugar nenhum!
java.sql.SQLException: [Microsoft][Driver ODBC para Microsoft Access] Não é possível abrir o banco de dados ‘|’. Ele pode não ser um banco de dados que o seu aplicativo reconheça ou o arquivo pode estar corrompido.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:288)
at testecruz.cruzador.cruzamento(cruzador.java:255)
at testecruz.Main.main(Main.java:34)
meu código é esse
public class cruzador {
private int ocupado = 0;
private Connection con;
private Connection conn;
private Statement st;
private Statement stt;
private Statement sttt;
private ResultSet rs1;
private ResultSet rs2;
private ResultSet rs3;
private String baseNova = "ddd11f";
private String baseAntiga = "SP";
private String versao = "2";
public cruzador()
{
conexaoJDBC();
cruzamento();
closeCon();
}
public void cruzamento()
{
try {
st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
stt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
sttt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
String lado = "";
int numero = 0;
String tipodoc = "";
String doc = "";
String cliente = "";
String tipo_end = "";
String end = "";
String num = "";
String complem = "";
String cep = "";
String bairro = "";
String cidade = "";
String uf = "";
String ddd = "";
String tel = "";
String doc2 = "";
String cliente2 = "";
String end2 = "";
String num2 = "";
String complem2 = "";
String bairro2 = "";
String cep2 = "";
String ddd2 = "";
String cidade2 = "";
String uf2 = "";
rs1 = st.executeQuery("SELECT TIPODOC, DOC, CLIENTE, TIPO_END, ENDE, NUM, COMPLEM, CEP, BAIRRO, CIDADE, UF, DDD, TEL FROM "+baseNova+"");
while(rs1.next())
{
tipodoc = (String) rs1.getString("TIPODOC");
doc = (String) rs1.getString("DOC");
cliente = (String) rs1.getString("CLIENTE");
tipo_end = (String) rs1.getString("TIPO_END");
end = (String) rs1.getString("ENDE");
num = (String) rs1.getString("NUM");
complem = (String) rs1.getString("COMPLEM");
cep = (String) rs1.getString("CEP");
bairro = (String) rs1.getString("BAIRRO");
cidade = (String) rs1.getString("CIDADE");
uf = (String) rs1.getString("UF");
ddd = (String) rs1.getString("DDD");
tel = (String) rs1.getString("TEL");
if(tipo_end == null)
tipo_end = " ";
if(end == null)
end = " ";
if(bairro == null)
bairro = " ";
end = tipo_end+" "+end;
end = end.replace("'", "");
bairro = bairro.replace("'", "");
if(cliente == null)
cliente = "";
if(doc == null)
doc = "";
if(cep == null)
cep = "";
if(num == null)
num = "";
if(complem == null)
complem = "";
if(versao.compareTo("2") == 0)
{
numero = Integer.valueOf(num);
if(numero % 2 == 0)
lado = "P";
else
lado = "I";
rs2 = stt.executeQuery("SELECT ID, NOME, ENDERECO, NUMERO, COMPL, BAIRRO, CIDADE, UF, CEP, DDD FROM 011 WHERE TELEFONE='"+tel+"'");
if(rs2.next() == true)
{
while(rs2.next())
{
doc2 = (String) rs2.getString("ID");
cliente2 = (String) rs2.getString("NOME");
end2 = (String) rs2.getString("ENDERECO");
num2 = (String) rs2.getString("NUMERO");
complem2 = (String) rs2.getString("COMPL");
bairro2 = (String) rs2.getString("BAIRRO");
cep2 = (String) rs2.getString("CEP");
ddd2 = (String) rs2.getString("DDD");
cidade2 = (String) rs2.getString("CIDADE");
uf2 = (String) rs2.getString("UF");
end2 = end2.replace("'", "");
bairro2 = bairro2.replace("'", "");
if(cep2 == null)
cep2 = "";
if(num2 == null)
num2 = "";
if(complem2 == null)
complem2 = "";
if(doc.length() > 11)
{
doc = doc.replaceFirst("000", "");
}
boolean diferente = false;
if(doc.compareToIgnoreCase(doc2) != 0)
diferente = true;
if(cliente.compareToIgnoreCase(cliente2) != 0)
diferente = true;
if(end.compareToIgnoreCase(end2) != 0)
diferente = true;
if(num.compareToIgnoreCase(num2) != 0)
diferente = true;
if(complem.compareToIgnoreCase(complem2) != 0)
diferente = true;
if(bairro.compareToIgnoreCase(bairro2) != 0)
diferente = true;
if(cep.compareToIgnoreCase(cep2) != 0)
diferente = true;
if(cidade.compareToIgnoreCase(cidade2) != 0)
diferente = true;
if(uf.compareToIgnoreCase(uf2) != 0)
diferente = true;
if(ddd.compareToIgnoreCase(ddd2) != 0)
diferente = true;
if(diferente == true)
{
sttt.executeUpdate("UPDATE 011 SET ID='"+doc+"', NOME='"+cliente+"', ENDERECO='"+end+"', NUMERO='"+num+"', COMPL='"+complem+"', BAIRRO='"+bairro+"', CEP='"+cep+"', DDD='"+ddd+"', CIDADE='"+cidade+"', UF='"+uf+"' WHERE TELEFONE='"+tel+"'");
}
}
}
else
{
if(cep2 == null)
cep2 = "";
if(num2 == null)
num2 = "";
if(complem2 == null)
complem2 = "";
if(doc.length() > 11)
{
doc = doc.replaceFirst("000", "");
}
rs3 = stt.executeQuery("SELECT CLASSE, GRAU, NAC, CBO, SAL, EMAIL, DDDC, CEL1, SEXO, NASC, PROFISSAO, CEL2, ANO FROM 011 WHERE ID='"+doc+"'");
if(rs3.next() == true)
{
while(rs3.next())
{
sttt.executeUpdate("INSERT INTO 011 (ID, NOME, ENDERECO, NUMERO, COMPL, BAIRRO, CIDADE, UF, CEP, DDD, TELEFONE, CLASSE, GRAU, NAC, CBO, SAL, EMAIL, DDDC, CEL1, SEXO, NASC, PROFISSAO, CEL2, PESSOA, ANO, RACA, X, OBS, LADO) VALUES ('"+doc+"', '"+cliente+"', '"+end+"', '"+num+"', '"+complem+"', '"+bairro+"', '"+cidade+"', '"+uf+"', '"+cep+"', '"+ddd+"', '"+tel+"', '"+rs3.getString("CLASSE")+"', "+rs3.getInt("GRAU")+", '"+rs3.getString("NAC")+"', '"+rs3.getString("CBO")+"', "+rs3.getInt("SAL")+", '"+rs3.getString("EMAIL")+"', '"+rs3.getString("DDDC")+"', '"+rs3.getString("CEL1")+"', '"+rs3.getString("SEXO")+"', '"+rs3.getString("NASC")+"', '"+rs3.getString("PROFISSAO")+"', '"+rs3.getString("CEL2")+"', '"+tipodoc+"', "+rs3.getInt("ANO")+", '', '', '', '"+lado+"')");
//stt.executeUpdate("INSERT INTO 011 (ID, NOME, ENDERECO, NUMERO, COMPL, BAIRRO, CIDADE, UF, CEP, DDD, TELEFONE, PESSOA, ANO, RACA, X, OBS, LADO) VALUES ('"+doc+"', '"+cliente+"', '"+end+"', '"+num+"', '"+complem+"', '"+bairro+"', '"+cidade+"', '"+uf+"', '"+cep+"', '"+ddd+"', '"+tel+"', '"+tipodoc+"', 0, '', '', '', '"+lado+"')");
}
}
else
{
sttt.executeUpdate("INSERT INTO 011 (ID, NOME, ENDERECO, NUMERO, COMPL, BAIRRO, CIDADE, UF, CEP, DDD, TELEFONE, CLASSE, GRAU, NAC, CBO, SAL, EMAIL, DDDC, CEL1, SEXO, NASC, PROFISSAO, CEL2, PESSOA, ANO, RACA, X, OBS, LADO) VALUES ('"+doc+"', '"+cliente+"', '"+end+"', '"+num+"', '"+complem+"', '"+bairro+"', '"+cidade+"', '"+uf+"', '"+cep+"', '"+ddd+"', '"+tel+"', '', 0, '', '', 0, '', '', '', '', '', '', '', '"+tipodoc+"', 0, '', '', '', '"+lado+"')");
}
rs3.close();
}
}
}
sttt.close();
stt.close();
st.close();
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void conexaoJDBC()
{
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
//Estabelecendo a conexão através do ODBC criado no Painel de Controle:
String login = "Administrator";
String senha = "kjdautf374%%**&^.as";
//Estabelecendo a conexão através do ODBC criado no Painel de Controle:
conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+baseAntiga+".mdb", login, senha);
//Criando um objeto Statement para enviar requisições SQL para o Banco de Dados
con = DriverManager.getConnection("jdbc:odbc:"+baseNova);
} catch (Exception e) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, e);
}
}
public void closeCon()
{
try {
con.close();
conn.close();
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Valeu!
