Como fazer acesso remoto a ODBC?

tudo bom pessoal … bom é o seguinte , fiz um applet para atualizar um banco d dados via ODBC … usei conexão simples … isso funcionou bem no applet viewer do eclipse mas no servidor simplesmente aborta no Class.ForName e não da nenhum tipo d erro só não executa … desd d ja agradeço a qualquer ajuda …

Olá

Resposta simples e direta: [color=red][size=18]Não use ODBC[/size][/color]

Faça a conexão usando um driver JDBC como todo mundo.

E se está usando O Access, pare imediatamente e tente usar uma base de dados de verdade.

[]s
Luca

oi tudo bem … valew pelos toque kra … mas o problema é q o sistema não é meu ;… incluse eu ja falei a mesma coisa q vc pra eles… :slight_smile: … mas por enquanto o sistema usa ODBC e Acess … terrivel… e eu não achei em lugar nenhum como fazer um acesso remoto a isso … se alguem conseguir me ajudar fico muito grato …

Olá

Se você tem certeza de que o cliente ODBC está configurado corretamente, procure por tutoriais de JDBC sobre como usar a ponte JDBC ODBC. Ou então refaça os passos da configuração do ODBC. Tem muito tutorial disto por aí na web.

[]s
Luca

Oi …

o odbc tenho certeza q esta correto pq na aplicação local funcionou corretamente … e sobre ponte jdbc odbc ja procurei e ond achei fala q não é aconselhavel utilizar em apples pois a maioria dos browser não suportam … e tambem fala sobre configurar o archive no html … mas não sei c existe outra maneira d conectar no odbc sem ponte e com setar o archive …

Olá

Não existe outro modo sem a ponte e não desista sem tentar só porque alguém falou que não funciona.

[]s
Luca

Você está tentando usar ODBC num applet?

Se nem driver pure java é aconselhavel fazer isso, quem dirá ponte ODBC.

Não use applets acessando o bd diretamente.

Olá

Boa grprado. Eu estava respondendo louco de vontade de dizer isto para ele. Mas como o pessol do GUJ diz que eu sou muito radical nisto então deixei para lá. Mas foi ótimo você ter dito.

[]s
Luca

Oi …

bom eu havia feito um aplicativo local … q funcionou legal … dae o kra me pediu pra por em applet pra atualizar o banco aparti d qualquer lugar … o codigo ficou assim …

import java.applet.Applet;
import java.awt.Button;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class pricipal extends Applet implements ActionListener {

Button b = new Button(“Iniciar”);
Label prct = new Label(“0.0 %”);
Label contag = new Label ("…");
TextArea ta = new TextArea(5,50);
String caminho = “jdbc:odbc:kstudio”;
static final String driver_class = “sun.jdbc.odbc.JdbcOdbcDriver”;
int total;

public void actionPerformed(ActionEvent ae){

if (ae.getSource() == b){

CheckUrl checkUrl = new CheckUrl();

try {

Class.forName(driver_class);

Connection con = DriverManager.getConnection(caminho,"","");
Statement d = con.createStatement();
Statement d2 = con.createStatement();
Statement d3 = con.createStatement();
String query = "select url.url from url ";

String query2 = “select count(*) from url” ;
ResultSet rr = d.executeQuery(query);

ResultSet rcount = d3.executeQuery(query2);

rcount.next();
total = rcount.getInt(1);

double atual;
int i = 0;
while (rr.next()) {
System.out.println(i);
checkUrl.status = false;
String aux = rr.getString(1);

checkUrl.url = aux;
checkUrl.verificaUrl();
String update;
if (checkUrl.status == true){
update = “UPDATE url SET url.status = ‘S’ WHERE url.url = '” + aux +"’";
}
else
{
update = “UPDATE url SET url.status = ‘N’ WHERE url.url = '” + aux +"’";
}
d2.executeUpdate(update);
i++;
ta.append(checkUrl.linha + “\n”);

atual = (i * 100) / 4953 ;

String strValue = String.valueOf(atual) + " %";
prct.setText(strValue);
contag.setText(String.valueOf(i) + " / " + String.valueOf(total));
}
checkUrl = null;
d.close();
con.close();

} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();

} catch (ClassNotFoundException e) {
ta.append("ClassException: " + e.getMessage());
e.printStackTrace();

}

} }

e ja tentei varios coisas …

Poxa que eu saiba isso aqui é um forum avançado, um cara pra fazer uma pergunta dessa não deve saber de muita coisa logo então eu recomendaria pra iniciantes postar esse tipo de duvida em forum para iniciante e não em forum avançado, acaba com a ideia do site, tanto que já é por isso que dois t forum

edita teu post e coloca o código entre [ code ] [ / code ]

Não poderia ser feita uma “gambiarra” usando RMI? Já tive problemas parecidos no passado, mas passei a usar só JDBC mesmo.

Lembrei de uma solução maluca que eu ouvi falar, seria compartilhar o .mdb usando active directory ou algum recurso parecido dai conectar com odbc

ba valew kra … vo tenta faze isso … afinal não custa tenta

[quote=desalmado]Oi …

bom eu havia feito um aplicativo local … q funcionou legal … dae o kra me pediu pra por em applet pra atualizar o banco aparti d qualquer lugar … o codigo ficou assim …

[/quote]

a) Não recomendaria poder “atualizar o banco a partir de qualquer lugar” usando um aplicativo (quanto mais uma applet). Isso é falha de segurança, e das grandes.
b) Se precisa desse tipo de funcionalidade, seria interessante você escrever uma aplicação Web mesmo (por exemplo, com páginas JSP). É que o que provavelmente o seu chefe quer é que o banco fique numa máquina X (talvez trancada na sala dele), e ele poder acessar a partir de qualquer lugar na firma (ou que tal na Internet?).

ba kra … é bem isso … mas dae eu falei com ele e vo faze diferente … com uma aplicação web q executa na maquina X o programa em java (pq ja ta pronto) … Mas valew ae pessoal pelas dicas … qualquer ajuda é sempre bem vinda … valeu …