Estou fazendo um projeto em desktop na facu e ele já está concluído, porém estou gerando o instalador dele (até ai tudo bem), o problema é que utilizo bd access e necessito configurar o odbc dele na máquina em que será instalado.
Estou utilizando Install Creator, esse é gratuito e muito bom para esse fim, mas pesquisei nos menus dele e não consegui achar nada refrente a ese tipo de configuração.
Minha dúvida é: existe algum meio de deixar que o instalador possa fazer a configuração da minha base nas fontes de dados (ODBC) do XP?
Não sei se estou no fórum certo, mas como é uma dúvida referente à base, então postei aqui.
Acho que isso pode te ajudar
Muda o jeito da sua classe JDBC conectar no banco de dados, veja o exemplo abaixo:
try{Stringdsn="jdbc:odbc:Driver={MicrosoftAccessDriver(*.mdb)};DBQ=c:/xxx/xxx.mdb"; String usuario = ""; String senha = ""; String sql = ""; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); Connection con = DriverManager.getConnection(dsn,usuario,senha); Statement st = con.createStatement(); PreparedStatement ps = con.prepareStatement("SELECT*FROMPessoas"); ps.setString(1, tf_busca.getText()); ResultSet rs = ps.executeQuery(); DefaultTableModel modelo = (DefaultTableModel)tabela.getModel(); int i = 0; while (modelo.getRowCount() > 0){ modelo.removeRow(i); } while (rs.next()){ String[] novaLinha = new String[4]; novaLinha[0] = rs.getString("NOME"); novaLinha[1] = rs.getString("IDADE"); novaLinha[2] = rs.getString("CONF"); novaLinha[3] = rs.getString("PPL");modelo.addRow(novaLinha);//adicionaumanovalinhaaotablemodeldatabela}st.close();con.close();}catch(Exceptione){e.printStackTrace();}
Dai o que vc pode fazer fixar um local para que sempre esteje o mdb (arquivo Access).
Pode usar o System.getProperties("user.home") -> ele te retornar um diretorio do usuario.
Ae você pode soltar a criatividade…
Seria bem dizer trocar o “apelido” do ODBC e chamar diretamente o driver de conexão, passando como parametro o nome da base?
É apenas curiosidade, pois eu não sabia que dava pra chamar sem precisar deixar registrado.
Quanto ao caminho fixo, eu deixei uma pasta proxima ao jar, nesse caso vai funcionar tranquilamente.
Véiu, vlw mesmo pela ajuda cara, dessa forma eu nem preciso me preocupar com o ODBC.
J
JOCIMA
publicclassConexaoAccess{publicConnectionconn;publicstaticStatementstatement;Stringdsn;publicConnectionConectar(){try{/* Tenta se conectar ao Driver */dsn="jdbc:odbc:Driver={Microsoft Access Driver (*.accdb)};DBQ=C:\\Users\\JOCIMÁ\\Desktop\\FPGS\\FPGS.accdb";Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();}catch(ClassNotFoundExceptione){JOptionPane.showMessageDialog(null,"Impossível carregar o Driver.");System.exit(0);}catch(InstantiationExceptione){e.printStackTrace();}catch(IllegalAccessExceptione){e.printStackTrace();}try{conn=DriverManager.getConnection(dsn);statement=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);}catch(SQLExceptione){e.printStackTrace();JOptionPane.showMessageDialog(null,"Problema ao conectar!");System.exit(0);}returnconn;}
Cara eu implementei deste geito mas nao deu certo...
Deu o seguinte erro:
[Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e nenhum driver padrão especificado