Puente JDBC-ODBC

Vayeya_bttf

Lanero Reconocido
19 Abr 2005
147
ALGUIEN PODRIA AYUDARME!!!! TENGO ESTANCADA EN ESTE PROBLEMA YA VARIO TIEMPO YA INSTALE JDK YA CONFIGURE MI FUENTE DE DATOS ODBC YA TENGO EL CODIGO PARA CARGAR EL PUENTE PERO NO ME LO CARGA ME MANDA ERROR!DONDE ESTA MI ERROR DONDE SE ENCUENTRA EL DRIVE JDBC-ODBC? TIENE QUE VER ESO? ESTE ES MI CODIGO:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.io.*;
import java.util.*;

public class InterMen extends Applet implements ActionListener {

private Button boton1;
private Button boton2;
private Button boton3;

private boolean oprimir = false;
private boolean estcon = false;
private boolean conest = false;
private boolean conece = false;
private boolean error = false ;
private boolean error2 = false ;

Connection conexion;
Statement sentencia;
ResultSet resultado;



public void init() {



boton1 = new Button("Cuenta de pozo");
add(boton1);
boton1.addActionListener(this);

boton2 = new Button("Boton 2");
add(boton2);
boton2.addActionListener(this);

boton3 = new Button("Boton 3");
add(boton3);
boton3.addActionListener(this);
}

public void paint (Graphics g) {
if (oprimir)
g.drawString("Cuenta de Pozos", 50, 50);
if(estcon)
g.drawString ("Estableciendo conexión con"+ urlBD + "...", 10, 60);
if(conest)
g.drawString ("Conexion establecida.", 10, 70);
if(conece)
g.drawString ("Conexion a" + urlBD + "cerrada.", 10, 80);
if(error)
g.drawString( "Error al cargar la clase necesaria para la conexion", 10, 90);
if(error2)
g.drawString( "Error al conectar el recurso odbc", 10, 90);
}

public void actionPerformed(ActionEvent event) {
oprimir = true;
repaint();
try{



Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
estcon = true;


}

catch (ClassNotFoundExceotion exception){
error = true;
return;
}

try {

conexion = DriverManager.getConnection( "jdbc:eek:dbc:BD1","","" );
sentencia = conexion.createStatement();
conest = true;}
catch( SQLException exception ) {
error2 = true;
return;
}
}
}
:(
 
a ver si mal no recuerdo para conectar Java-Acces usando el Jdbc-Odbe Driver uno tenía que crear un "origen de datos" Odbc o como se llame, eso lo hace en por panel de control->herramientas administrativas->administrador de origenes de datos odbc, esto para win xp para 98 creo que era diferente,
-una vez que este en el dministrador de origenes de datos odbc
-vaya a la pestaña de DSN de usuario
-luego dele al botón agregar y en la lista que le aparecerá escoja M$ driver Access y finalizar
-despues le aparece otra ventana, dele al botón seleccionar ahí escoga la BD que vá a usar desde java, en el campo que dice "nombre del origen de datos" pongale el nombre que vá a usar en la línea
String url = """jdbcdbc:pONGA_AQUI_EL_NOMBRE";
conexion = DriverManager.getConnection(url ,"","" );
-opcionalmente puede ponerle un login o password a dicho origen de datos odbc, eso lo hace dandole click al boton avanzadas del cuadro de dialogo de configuracion de ODBC M$ access
-cuando acabe dele aceptar y listo...

Espero le sirva.. =)
 
Perdona que me meta, pero, estás segura que los jars que del driver jdbc están en el classpath??

PD> Podrías postear todo el stacktrace del error?
 
unintended dijo:
Perdona que me meta, pero, estás segura que los jars que del driver jdbc están en el classpath??

PD> Podrías postear todo el stacktrace del error?
Mmmm estoy intentando configurar los jars en el classpath pero realmente no se si loo estoy haciendo bien... podrias decirme como?.... y no entendi la posdate :p
 
No me había fijado que la clase es un Applet. Para tu información, utilizar jdbc en applets no es una práctica muy ortodoxa, pues como bien sabés, el código se ejecuta en la máquina del cliente así que pensá todo lo que esto implica. Te sugiero que mejor hagás una aplicación standalone (utilizando Frame, para que no tengás que modificar mucho tu código).

Si de verdad necesitás que sea un applet, entonces te toca cacharrear un poco más para poder correr eso:

Tenés que:
1. Copiar todas las clases adicionales que necesités en el mismo directorio base donde reside el html y la clase (respetando la jerarquia de paquetes, por ejemplo, si necesitás la clase com.laneros.jdbc.UnaClase, entonces la clase debe ir en <<dir_base>>com/laneros/jdbc/UnaClase.class). La verdad no me explico por qué no te está cargando la clase sun.jdbc.odbc.JdbcOdbcDriver, pues dicha clase está en las librerías de runtime (rt.jar).

2. Tenés que asignar un par de permisos explícitamente al applet mediante una archivo de policy, pues java 2 security aplica varias restricciones de seguridad a los applets. Para sobreescribir esos permisos, tenés que crear o modificar un archivo llamado ".java.policy" que reside en el directorio home de tu usuario en el sistema operativo, de modo que tenga el siguiente contenido:

Código:
grant {
  permission java.lang.RuntimePermission
    "accessClassInPackage.sun.jdbc.odbc";
    
  permission java.util.PropertyPermission
    "file.encoding", "read";  
};
Así que creo que estarás de acuerdo conmigo en que sería mucho más facil correr tu programa como un standalone!
smiley%20-%20wink.gif
 
unintended dijo:
No me había fijado que la clase es un Applet. Para tu información, utilizar jdbc en applets no es una práctica muy ortodoxa, pues como bien sabés, el código se ejecuta en la máquina del cliente así que pensá todo lo que esto implica. Te sugiero que mejor hagás una aplicación standalone (utilizando Frame, para que no tengás que modificar mucho tu código).

Si de verdad necesitás que sea un applet, entonces te toca cacharrear un poco más para poder correr eso:

Tenés que:
1. Copiar todas las clases adicionales que necesités en el mismo directorio base donde reside el html y la clase (respetando la jerarquia de paquetes, por ejemplo, si necesitás la clase com.laneros.jdbc.UnaClase, entonces la clase debe ir en <<dir_base>>com/laneros/jdbc/UnaClase.class). La verdad no me explico por qué no te está cargando la clase sun.jdbc.odbc.JdbcOdbcDriver, pues dicha clase está en las librerías de runtime (rt.jar).

2. Tenés que asignar un par de permisos explícitamente al applet mediante una archivo de policy, pues java 2 security aplica varias restricciones de seguridad a los applets. Para sobreescribir esos permisos, tenés que crear o modificar un archivo llamado ".java.policy" que reside en el directorio home de tu usuario en el sistema operativo, de modo que tenga el siguiente contenido:

Código:
grant {
  permission java.lang.RuntimePermission
    "accessClassInPackage.sun.jdbc.odbc";
    
  permission java.util.PropertyPermission
    "file.encoding", "read";  
};
Así que creo que estarás de acuerdo conmigo en que sería mucho más facil correr tu programa como un standalone!
smiley%20-%20wink.gif
Tienes toda todaaaa la razon ya lo intente y ya me funcino muchisimas gracias!
 

Los últimos temas