• Viernes 8 de Noviembre de 2024, 09:36

Autor Tema:  Que estoy haciendo mal?  (Leído 1711 veces)

Alenki

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Que estoy haciendo mal?
« en: Domingo 20 de Diciembre de 2009, 17:49 »
0
Saludos,

Me llamo alex, recien empiezo con la programacion en java y estoy practicando a usar una bd de access y ponerle unos datos por consola,
les cuento que encontre un tutorial que me decia paso a paso como hacerlo pero al final no lo he logrado, el codigo no me da error pero tampoco
guarda la informacion, lo copio aqui por si alguien sabe que es lo que me falta para que funcione.

Gracias de Antemano.
Alex.

Código: Java
  1.  
  2. import java.sql.DriverManager;
  3. import java.sql.Connection;
  4. import java.sql.Statement;
  5.  
  6. public class Guardar{
  7.  
  8.     public static void main(String[] argumentos){
  9.            
  10.         String myDB ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\BD\Clientes.MDB";
  11.                        
  12.         try{
  13.             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  14.             System.out.println("Carga de driver exitosa!!!");
  15.            
  16.             Connection conn = DriverManager.getConnection(myDB,"","");
  17.             System.out.println("Apertura Exitosa!!!");  
  18.            
  19.             Statement stat = conn.createStatement();;
  20.             stat.executeUpdate("Insert into Personas(nombre, apellido) Values('Nombre2', 'Apellido2')");
  21.             System.out.println("Guardado Exitoso!!!");
  22.         }
  23.        
  24.         catch(Exception e){
  25.             System.out.println(e.getMessage());
  26.         }
  27.        
  28.     }
  29. }
  30.  
  31.  

gophlb

  • Visitante
Re: Que estoy haciendo mal?
« Respuesta #1 en: Domingo 20 de Diciembre de 2009, 20:30 »
0
yo realizo un acceso a un mdb y tngo lo siguiente:
Código: Java
  1. String urlBBDD = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=../bbdd/bbdd.mdb";
  2.  
me daba problemas el tema de \ asi que lo cambie a / y listo

suerte !

Alenki

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Que estoy haciendo mal?
« Respuesta #2 en: Domingo 20 de Diciembre de 2009, 21:54 »
0
Cita de: "gophlb"
yo realizo un acceso a un mdb y tngo lo siguiente:
Código: Java
  1. String urlBBDD = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=../bbdd/bbdd.mdb";
  2.  
me daba problemas el tema de \ asi que lo cambie a / y listo

suerte !

Muchas gracias por responder, pero ya habia probado con /, de hecho originalmente estaba asi. Te cuento que el programa no me da ningun error, simplemente no guarda. En la consola aparece esto:

Carga de driver exitosa!!!
Apertura Exitosa!!!
Guardado Exitoso!!!
Presione una tecla para continuar . . .

Lo que me quiere decir que en ningun momento ocurre alguna excepcion y se salte algo del codigo o se vaya al catch. eso es lo que mas me intriga.
Gracias,
Alex

Alenki

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Resuelto!!!
« Respuesta #3 en: Domingo 20 de Diciembre de 2009, 22:54 »
0
Ya lo resolvi por pura suerte, pegue un codigo de otra pagina que usaba un insert dentro de mi clase sin modificar nada del codigo que ya tenia, para compararlo con el mio, resulta que ellos cerraban la tabla y la conexion cosa que yo no estaba haciendo,

         stat.close();
         conn.close();

con esas dos lineas mi codigo comenzo a guardar.
:P

gophlb

  • Visitante
Re: Resuelto!!!
« Respuesta #4 en: Lunes 21 de Diciembre de 2009, 08:14 »
0
Cita de: "Alenki"
Ya lo resolvi por pura suerte, pegue un codigo de otra pagina que usaba un insert dentro de mi clase sin modificar nada del codigo que ya tenia, para compararlo con el mio, resulta que ellos cerraban la tabla y la conexion cosa que yo no estaba haciendo,

         stat.close();
         conn.close();

con esas dos lineas mi codigo comenzo a guardar.
:P
bien, ese es el tipico error que a todos nos ocurre mil millones de veces y en el que nunca caemos: hay que cerrar conexiones :P

lo que no tengo muy claro es en que influye el que se cierre la conexion o no. quiero decir: si tu haces en una misma conexion 18 queries diferentes...no las ejecuta hasta que no cierras conexion? y como recibes entonces los resultados?

en cualquier caso, el cerrar las conexiones, como "regla" de buenas practicas, deberias hacerlo (por si no lo haces ya) en un bloque finally para que pase lo que pase, siempre se ejecute :)

me alegro de que lo hayas arreglado