Pessoal, infelizmente tenho que trabalhar com um .mdb, mas preciso de um driver free para conectar ao access, alguem pode me indicar algum? todos que estou vendo ou são trial
Driver MSAccess
F
3 Respostas
Da uma lida sobre JDBCODBC
Abraço
D
Utilizei esses dias atras essa classe aí para acessar access usei o driver que nosso amigo falou
sun.jdbc.odbc.JdbcOdbcDriver
segue a classe.... tudo pronto.....
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Time;
import java.sql.Timestamp;
public class UtilAccess {
private java.sql.Connection db = null;
public boolean isConectado() {
boolean blRetorno = false;
try{
blRetorno= !db.isClosed();
}catch(Exception Ex) {}
return blRetorno;
}
public java.sql.Connection getConnection(){
return db;
}
public PreparedStatement CriaPreparedStatement(String sSQL) {
PreparedStatement stmRet = null;
try{
stmRet = db.prepareStatement(sSQL);
stmRet.clearParameters();
}catch(Exception Ex) {
System.out.println("Erro ao criar PreparedStatement. " +Ex.getMessage());
stmRet = null;
}
return stmRet;
}
public Statement CriaStatement() {
Statement stmRet = null;
try{
stmRet = db.createStatement();
}catch(Exception Ex) {
System.out.println("Erro ao criar Statement. " +Ex.getMessage());
stmRet = null;
}
return stmRet;
}
public void ExecutaSemRs(String sSQL) {
Statement stmRet = CriaStatement();
if(stmRet == null) return;
try {
stmRet.execute(sSQL);
}catch(Exception Ex) {
System.out.println("Erro ao executar SQL. - " + sSQL+Ex.getMessage());
}
try{
stmRet.close();
}catch(Exception Ex2){}
stmRet = null;
}
public ResultSet ExecutaParametros(String sSQL, java.util.Vector vetParametros, boolean blComRS) {
Object oParamentros[] = new Object[vetParametros.size()];
for(int i=0;i<vetParametros.size();i++)
oParamentros[i] = vetParametros.get(i);
return ExecutaParametros(sSQL,oParamentros, blComRS);
}
public ResultSet ExecutaParametros(String sSQL, Object[] Parametros, boolean blComRS) {
PreparedStatement prepState = null ;
ResultSet rs = null;
if( (prepState = CriaPreparedStatement(sSQL)) == null) {
System.out.println("Erro ao receber PreparedStatement");
return null;
}
for(int i=0;i< Parametros.length;i++) {
try{
if( Parametros[i] == null)
prepState.setObject((i+1),null);
else {
if(Parametros[i] instanceof Date ) {
prepState.setDate( (i+1), Date.valueOf(Parametros[i].toString()) );
}else if(Parametros[i] instanceof Double ){
prepState.setDouble((i+1), Double.parseDouble(Parametros[i].toString()));
}else if(Parametros[i] instanceof Float ){
prepState.setFloat((i+1), Float.parseFloat(Parametros[i].toString()));
}else if(Parametros[i] instanceof Integer ){
prepState.setInt((i+1), Integer.parseInt(Parametros[i].toString()));
}else if(Parametros[i] instanceof Long ){
prepState.setLong((i+1), Long.parseLong(Parametros[i].toString()));
}else if(Parametros[i] instanceof Object ){
prepState.setObject((i+1), Parametros[i] );
}else if(Parametros[i] instanceof Short ){
prepState.setShort((i+1), Short.parseShort(Parametros[i].toString()));
}else if(Parametros[i] instanceof String ){
prepState.setString((i+1), Parametros[i].toString() );
}else if(Parametros[i] instanceof Time ){
prepState.setTime((i+1), Time.valueOf(Parametros[i].toString()) );
}else if(Parametros[i] instanceof Timestamp ){
prepState.setTimestamp((i+1), Timestamp.valueOf(Parametros[i].toString()) );
}else if(Parametros[i] instanceof Boolean ){
prepState.setBoolean((i+1), Boolean.valueOf(Parametros[i].toString()) );
}
}
}catch(SQLException Ex) {
System.out.println("prepareStatement erro de conversão no parametro " + i + ": " +Ex.getMessage());
}
}
try{
if(blComRS)
rs = prepState.executeQuery();
else
prepState.executeUpdate();
}catch(Exception Ex1){
System.out.println("Erro ao executar query: "+Ex1.getMessage());
}
return rs;
}
public ResultSet Executa(String sSQL) {
ResultSet rs = null;
Statement stmRet = CriaStatement();
if(stmRet == null) return null;
try {
rs = stmRet.executeQuery(sSQL);
}catch(Exception Ex) {
System.out.println("Erro ao executar SQL. - " + sSQL+Ex.getMessage());
}
return rs;
}
public void FechaConexao(){
try{
db.close();
db = null;
}catch(Exception exp) {//
}
}
public void AbreConexao(String sURL) throws Exception{
try{
AbreConexao("sun.jdbc.odbc.JdbcOdbcDriver","jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/IMD/"+sURL,"","");
}catch(Exception ex){
System.out.println("Erro ao ler os dados do arquivo de configuração - "+ex.getMessage());
throw new Exception("Erro ao ler os dados do arquivo de configuração - " + ex.getMessage().toString());
}
}
public void AbreConexao(String sDriver,String sURL,String sUsuario,String sSenha) throws Exception{
try{
Class.forName(sDriver);
db = DriverManager.getConnection(sURL,
sUsuario, sSenha);
}catch(Exception ex){
System.out.println("Erro na conexão com o banco de dados - " +ex.getMessage());
System.out.println("Erro na conexão com o banco de dados - "+ ex.getMessage());
throw new Exception("Erro na conexão com o banco de dados - " +ex.toString());
}
}
public int UltimoID(String nomeDaTabelaDoDB,String nomeDoCampodoDB){
int cod=0;
String sSQL="select max(" + nomeDoCampodoDB + ") as mID from " + nomeDaTabelaDoDB;
ResultSet rs=Executa(sSQL);
try{
rs.next();
cod= rs.getInt("MID");
rs.close();
}catch(Exception ex){System.out.println("Erro ao pegar ultimoID"+ex.getMessage());}
return cod;
}
}
Valew..pelo toque...
segue a classe.... tudo pronto.....
Tente editar o seu post e colocar as tags [code] para ajudar a visualização!!!
Criado 9 de novembro de 2007
Ultima resposta 9 de nov. de 2007
Respostas 3
Participantes 4