elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ¿No se encuentra origen de datos?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: ¿No se encuentra origen de datos?  (Leído 26,697 veces)
|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
¿No se encuentra origen de datos?
« en: 14 Febrero 2012, 18:17 pm »

Hola, buenas... veamos estoy intentando actualizar una base de datos de Access desde Java con el siguiente código:

Código
  1. String nom=jtxtNombre.getText(), ape1=jtxtApellido1.getText(), ape2=jtxtApellido2.getText(), id=jtxtNum.getText();
  2.        String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
  3.        String miDB = "jdbc:odbc:propietarios";
  4.        try {
  5.            Class.forName(DRIVER);
  6.            Connection conexion =  DriverManager.getConnection(miDB);
  7.            PreparedStatement select = conexion.prepareStatement("SELECT * FROM Propietario where dni='"+id+"';");
  8.            ResultSet rs = select.executeQuery();
  9.            select=conexion.prepareStatement("update propietario set nombre='"+nom+"', apellido1='"+ape1+"', apellido2='"+ape2+"' where dni='"+id+"';");
  10.            select.executeUpdate();
  11.            rs.close();
  12.            select.close();
  13.            conexion.close();
  14.        }
  15.        catch (Exception e) {
  16.            System.out.println("Error: " + e);
  17.        }
  18.  

Y me da el siguiente error (excepción, en realidad):
Cita de: java
Error: java.sql.SQLException: [Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especific? ning?n controlador predeterminado

No entiendo qué le pasa. He definido mi archivo de base de datos desde Herramientas administrativas/Orígenes de datos ODBC. Adjunto captura de la configuración...

Saludos, y gracias!


En línea

|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
Re: ¿No se encuentra origen de datos?
« Respuesta #1 en: 14 Febrero 2012, 20:47 pm »

Utilizando unos cuantos print he localizado la línea que falla, esta:
Código
  1. Connection conexion =  DriverManager.getConnection(miDB);
  2.  

Pero no llego a ver el fallo... El código completo de cómo he aislado la línea donde casca es este:
Código
  1. int i=1;
  2.            System.out.print(i);i++;
  3.            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");System.out.print(i);i++;
  4.            Connection conexion =  DriverManager.getConnection(miDB);System.out.print(i);i++;
  5.            PreparedStatement select = conexion.prepareStatement("SELECT * FROM Propietario;");System.out.print(i);i++;
  6.            ResultSet rs = select.executeQuery();System.out.print(i);i++;
  7.  

EDITO:
Cita de: java
12Error: java.sql.SQLException: [Microsoft][Administrador de controladores ODBC] La arquitectura del DSN especificado no coincide entre el controlador y la aplicaci?n.


« Última modificación: 14 Febrero 2012, 20:57 pm por |Miguel| » En línea

|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
Re: ¿No se encuentra origen de datos?
« Respuesta #2 en: 14 Febrero 2012, 21:22 pm »

He probado el programa tal cual, sin tocar código, en una máquina de 32 bits (antes lo hice en una de 64) y funciona perfectamente.

Mañana indagaré sobre el asunto, porque ya sabía que ese tema daba problemas pero supuestamente se solventaba utilizando este archivo c:\windows\syswow64\odbcad32.exe en lugar del acceso directo que hay en Herramientas adminsitrativas... pero no, por lo visto hay algo que desconozco o debo haber olvidado...

Saludos.
En línea

jperezmonge

Desconectado Desconectado

Mensajes: 24


Chronos Estudios


Ver Perfil
Re: ¿No se encuentra origen de datos?
« Respuesta #3 en: 19 Febrero 2012, 13:29 pm »

No se si te ayuda algo o quizás entiendas mas que yo y te rías de mi. Yo trabajo con mysql y lo único que tengo que hacer es al proyecto con el que estoy trabajando adjuntar el jar donde están los driver, no se si te sirve de algo.
En línea

|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
Re: ¿No se encuentra origen de datos?
« Respuesta #4 en: 19 Febrero 2012, 13:41 pm »

Al final era lo que comentaba antes, que al compilar en una máquina de 64 bits había que bajar el JDK a uno de 32 ya que no existen ODBC's de 64.

Lo que tú dices creo que es otra cosa, los driver hay que pasárselos siempre si no me equivoco... no sé, acabo de empezar a trastear con BBDD .
En línea

jperezmonge

Desconectado Desconectado

Mensajes: 24


Chronos Estudios


Ver Perfil
Re: ¿No se encuentra origen de datos?
« Respuesta #5 en: 19 Febrero 2012, 14:32 pm »

entonces estamos igual :)
En línea

theluigy13etv

Desconectado Desconectado

Mensajes: 179


Primero se hace, después se mejora


Ver Perfil
Re: ¿No se encuentra origen de datos?
« Respuesta #6 en: 23 Septiembre 2012, 04:10 am »

Citar
Mañana indagaré sobre el asunto, porque ya sabía que ese tema daba problemas pero supuestamente se solventaba utilizando este archivo c:\windows\syswow64\odbcad32.exe en lugar del acceso directo que hay en Herramientas adminsitrativas... pero no, por lo visto hay algo que desconozco o debo haber olvidado...

Disculpen que reviva este post pero creo que tengo la solución.
En windows 7 de 64 bits existen dos archivos odbcad32.exe que se encuentran en dos ubicaciones distintas.

c:\windows\syswow64\      .....<---- (Aquí esta el ODBC de 32 bits, no te confundas por los números contradictorios)
c:\windows\System32\      ..........<---- (Aquí esta el ODBC de 64 bits

La diferencia entre ambas es que el primero tiene la lista de controladores ODBC de 32 bits mientras que la segunda tiene la lista de controladores ODBC de 64 bits. Por defecto, cuando ingresas a Orígenes de Datos ODBC en el Panel de Control, te manda al Administrador ODBC de 64 bits. Pero en dicho Administrador no vas a encontrar el controlador de 64 bits de Access, en cambio si ingresas al segundo, osea, al que se encuentra en c:\windows\syswow64\ allí si lo encuentras. Con eso logras seleccionar el controlador 32 bits de Access. Pero creo que él error ocurre porque estás compilando tu trabajo en un JDK para 64 bits.

Yo lo que hice fue instalar el JDK de 32 bits, no necesité desinstalar el JDK de 64 bits, ya que se isntalan en carpetas diferentes. Luego, como utilizo el NetBeans, en las propiedades de proyecto, elijo el JDK que quiero utilizar para generar mi programa. Así, utilizando el JDK de 32 bits no hay ningún problema para conectar tu programa con la base de Datos de Access.
« Última modificación: 23 Septiembre 2012, 04:11 am por theluigy13etv » En línea

isakmtz

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ¿No se encuentra origen de datos?
« Respuesta #7 en: 1 Octubre 2012, 05:39 am »

Oye theluigy13etv, que bueno que pones la solución.

Efectivamente yo tuve el mismo problema, tenia instalado el SDK de 64 bits y no seconectaba con Access 2007, entonces instale el SDK de 32 bits (jdk-6-windows-i586)

Tuve que ejecutar eclipse de 32 bits tambien.
En línea

theluigy13etv

Desconectado Desconectado

Mensajes: 179


Primero se hace, después se mejora


Ver Perfil
Re: ¿No se encuentra origen de datos?
« Respuesta #8 en: 3 Octubre 2012, 00:50 am »

Oye theluigy13etv, que bueno que pones la solución.

Efectivamente yo tuve el mismo problema, tenia instalado el SDK de 64 bits y no seconectaba con Access 2007, entonces instale el SDK de 32 bits (jdk-6-windows-i586)

Tuve que ejecutar eclipse de 32 bits tambien.

Sí, pero creo que no es necesario que tu Eclipse sea de 32 bits, porque yo tengo mi NetBeans de 64 bits pero de todas maneras puedo elegir el JDK con el que deseo trabajar para obtener mis aplicaciones. Osea puedo usar el JDK de 32 bits o de 64 bits a pesar que mi NetBeans es de 64 bits. En Eclipse supongo que debe ser algo parecido
En línea

alvifa

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: ¿No se encuentra origen de datos?
« Respuesta #9 en: 1 Noviembre 2012, 21:46 pm »

Hola theluigy13etv

Me podrias decir por favor donde cambio el jdk con el que quiero que compile mi programa. Tambien sabes porque aunque lo haya compilado en una maquina de 64bits me corre perfectamente en maquinas con XP de 32bits?

Gracias,
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines