Como fazer acesso remoto a ODBC?

15 respostas
D

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 …

15 Respostas

L

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

D

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 …

L

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

D

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 …

L

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

G

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.

L

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

D

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 …

P

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

R

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

K

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

K

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

D

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

T

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 …

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?).

D

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 …

Criado 22 de setembro de 2006
Ultima resposta 26 de set. de 2006
Respostas 15
Participantes 7