JSP acessando remotamente MS-ACCESS

Oi gente,

Tem como fazer isso???

Eu procurei no fórum aqui e só achei a solução para o acesso localmente.

:cry:

Vc diz JSP acessando um banco de dados Acess na maquina em que ele roda e acessa-lo remotamente…??? Se é isso que vc quiz dizer é possivel.

Caro Amigo javanes…

Acredito que seja possível fazer o que vc quer.
Mas a minha sugestão é que vc procure um banco de dados free com suporte a conexão via tcp/ip.
Dessa forma sua implementação ficaria mais elegante.
Nada contra o access, acho que é um banco de dados de apoio.
Não colocaria uma aplicação na internet para rodar dessa forma.
Vc já pensou em alguma solução com o JAVA e LINUX ?

Se precisar de ajuda é só gritar.

Um abraço,

Edilson S. Souza
Provecta Informática


Diga não às Drogas. :evil:
Use JAVALINUX. :idea:
http://www.javalinux.com.br


Você consegue sim acessar Access remotamente …

Para isso vc deve compartilhar um diretório na máquina onde o arquivo .mdb está e a partir da página JSP indicar o nome da máquina/compartilhamento/arquivo …

Ueh
Num to intendendo
Pra q essas parada de compartilhamento???
Nao eh soh vc fazer uma fonte de dados odbc onde esta o acess nao?

Amigos,

Obrigado pelas respostas, mas a questão é q esse sistema já é usado
pela minha empresa há anos e não tem como mudar.
Por mim seria tudo em LINUX/PostgreSQL, mas aqui temos access,
sql server, Oracle e Btrieve.

A minha aplicação JSP rodará em um linux sobre o Oracle 9iAS
(que suporta JSP numa boa,pois é baseado no antigo JServ) e vai
precisar acessar todas essas bases pra fazer consultas.

Vou tentar fazer o compartilhamento e depois eu retorno!

:wink:

Infelizmente não funcionou :cry:

O meu ambiente de desenvolvimento está assim:

maquina1 (Tomcat 4.1)
|
|
V
maquina2 (Access)
-ODBC chamado DB apontando para C: empanco.mdb

  • C: emp compartilhado como TEMP

Quando eu tento:

Connection connection = java.sql.DriverManager.getConnection(“jdbc:odbc://10.11.0.246/DB”);

ou

Connection connection = java.sql.DriverManager.getConnection(“jdbc:odbc://10.11.0.246/TEMP/banco.mdb”);

Dá esse erro:

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

Eu tenho uma cópia desse banco .mdb na máquina1 e tenho um ODBC
chamado TESTE e esse funciona redondo com o seguinte código:

Connection connection = java.sql.DriverManager.getConnection(“jdbc:odbc:TESTE”);

Então gente, o que devo fazer ???

Ah … é o seguinte:

  1. Qd for utilizar uma aplicação WEB vc precisa ter um drive ODBC (apontando para o .mdb) criado e configurado na máquina onde a página (.jsp) roda, ou seja, no mesmo servidor do TOMCAT … apenas nesta máquina entende ? vc nao tem que colocar nada de IP na string de conexao, vc simplesmente aponta para o [color=“blue”]NomeDoSeuODBC[/color] local (servidor TOMCAT):

conn = DriverManager.getConnection(“jdbc:odbc:[color=“blue”]NomeDoSeuODBC[/color]”);

Aí, na criação do drive ODBC no servidor com o TOMCAT vc deve informar o IP ou nome da máquina onde esta o BD ? lá no painel de controle do windows q vc mostra a máquina/IP e BD e não na string de conexão …

  1. Se vc se utiliza de aplicações gráficas Desktop vc precisa ter o ODBC configurado em cada máquina q vai usar o sistema …

vê se funciona

Solucionado !!!

Consegui as soluções para os meus dois ambientes!!!

Solução 1:

TOMCAT (em Windows) MAQUINA1 -----> Base Access (outra máquina Windows) MAQUINA2

Na MAQUINA1 -> compartilhar o diretório do arquivo MDB
Na MAQUINA2 -> mapear o diretório da MAQUINA1 (como E: por exemplo)
Na NAQUINA2 -> crie um ODBC apontando para E:SEU_BANCO.MDB

Pronto! Agora referencie como se fosse um ODBC local.

Solução 2:

TOMCAT (em Linux) —> Base Access (Windows)

Na MAQUINA2 -> Crie um ODBC apontando para o banco .MDB (exemplo: DB)
Na MAQUINA2 -> instale o JDK e o RMIJDBC.

Baixe daqui o RMIJDBC: http://www.objectweb.org/rmijdbc/RmiJdbc.tar.gz

Na MAQUINA2 -> inicie o server com:

java org.objectweb.rmijdbc.RJJdbcServer

Na MAQUINA1 -> instale e use o RMIJDBC para acessar a base!

O código é quase o mesmo do JDBC:
Class.forName(“org.objectweb.rmijdbc.Driver”).newInstance();
String url = “jdbc:odbc:DB”;
String rmiHost = new String( “//10.11.0.246”); // remoto

// jdbc:rmi://<rmiHostName[:port]>/<jdbc-url>

java.sql.Connection c = DriverManager.getConnection(“jdbc:rmi:”+ rmiHost + “/” + url, “”, “”);

Essa solução é IDEAL para o meu servidor LINUX!!!

Outro exemplo de acesso remoto ao Access:

http://www.objectweb.org/rmijdbc//Access/access.html

Obrigado a todos pela ajuda e espero que o meu roteiro ajude alguém!!!

:lol: