• Domingo 22 de Diciembre de 2024, 15:05

Autor Tema:  Problemas Al Recorrer Una Base De Datos  (Leído 2838 veces)

turicuen

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Problemas Al Recorrer Una Base De Datos
« en: Jueves 5 de Junio de 2008, 19:45 »
0
A las buenas, a ver si alguien me puede echar una mano, porque me estoy volviendo loco. Uso netbeans 6.0 y estoy trabajando con una base de datos de Access. Me conecta bien con la base de datos, me la muestra correctamente, pero cuando intento recorrerla me falla. Os pongo parte del código.


Código: Text
  1. // Así es como tengo declarado las var
  2. Connection con;
  3. Statement sent
  4. ResultSet result;
  5. String dir = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/base.mdb";  
  6.  
  7.  
  8. // Así establezco la conexión con la Base de datos
  9.  
  10. try {
  11.             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  12.             con= DriverManager.getConnection(dir);
  13.             sent= con.createStatement();
  14.             result = sent.executeQuery("select * from tabla");
  15.             result.next();
  16.  } catch (Exception error) {
  17.                             }
  18.  
  19.  
  20. // hasta aquí todo correcto y no falla
  21. //Pero cuando quiero consultar el anterior. Falla
  22.  
  23. try {
  24.                result.previous();
  25.  
  26.  } catch (Exception error) {
  27.                             }
  28.  
  29.  
  30.  
  31.  
Es decir cuando hago un

Código: Text
  1. result.next();
  2.  
sin problemas, pero cuando quiero consultar el registro anterior me falla. Sabéis porque??? Por cierto si hago
o:
Código: Text
  1. resutl.first();
  2.  
también falla.


A ver si alguien sabe algo. Y GRACIAS de antemano.

manix

  • Miembro MUY activo
  • ***
  • Mensajes: 203
  • Nacionalidad: cr
    • Ver Perfil
    • http://apuntes.delibertad.com
Re: Problemas Al Recorrer Una Base De Datos
« Respuesta #1 en: Jueves 5 de Junio de 2008, 19:54 »
0
Mira, a lo que estoy enterado, cuando llamas al result.next(); el cursor se establece detras del primera tupla pero no en la primara tupla en si, talvez puedaser un problema de posicionamiento donde te quieres devolver a una tupla que tupla que no existe


saludos

turicuen

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Problemas Al Recorrer Una Base De Datos
« Respuesta #2 en: Jueves 5 de Junio de 2008, 20:02 »
0
Lo primero gracias por responder tan rápidamente. Aunque creo que ese no es el problema. Solamente me permite usar el método next(), no me deja ni previous(), ni first().. nada. Creo que va a ser un problema con los drivers de la base de datos.

turicuen

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Problemas Al Recorrer Una Base De Datos
« Respuesta #3 en: Jueves 5 de Junio de 2008, 20:27 »
0
Porque hay alguna otra forma de Recorrer la base de datos?

manix

  • Miembro MUY activo
  • ***
  • Mensajes: 203
  • Nacionalidad: cr
    • Ver Perfil
    • http://apuntes.delibertad.com
Re: Problemas Al Recorrer Una Base De Datos
« Respuesta #4 en: Jueves 5 de Junio de 2008, 22:15 »
0
No que yo sepa, para eso esta el resulset, ahora, por que no pones el error que te lanza??


saludos

turicuen

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Problemas Al Recorrer Una Base De Datos
« Respuesta #5 en: Viernes 6 de Junio de 2008, 00:06 »
0
A ver error exactamente no sale porque esta dentro de un try{} catch{}. Lo que pasa es que entra directamente en el catch{}.

turicuen

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Problemas Al Recorrer Una Base De Datos
« Respuesta #6 en: Viernes 6 de Junio de 2008, 23:04 »
0
Una cosa que se me ocurre es si mediante un arralist lo podria manejar. Es posible

manix

  • Miembro MUY activo
  • ***
  • Mensajes: 203
  • Nacionalidad: cr
    • Ver Perfil
    • http://apuntes.delibertad.com
Re: Problemas Al Recorrer Una Base De Datos
« Respuesta #7 en: Viernes 6 de Junio de 2008, 23:09 »
0
Si, es posible....Mira lo que te aconsenjo es que si lo que quieres es recorrer los datos del resulset hagas:

Código: Text
  1.  
  2. ArrayList array = new ArrayList();
  3. result = sent.executeQuery("select * from tabla");
  4. while (result.next()){
  5.     // aca todo el codigo
  6.     array.add(resultSet.getString(resultSet.findColumn("nombre de columna"));  //se agrega un String
  7. }
  8.  
  9.  
si no sabes como obtener lo datos del resulset me dices


saludos

turicuen

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Problemas Al Recorrer Una Base De Datos
« Respuesta #8 en: Viernes 6 de Junio de 2008, 23:31 »
0
Muchas gracias lo probare esta noche. !!!

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re: Problemas Al Recorrer Una Base De Datos
« Respuesta #9 en: Viernes 6 de Junio de 2008, 23:37 »
0
Hola, para que el driver te permita navegar hacia atrás y adelante en un resultset debes pasarle unos parametros al createstament, por ejm

Código: Text
  1. stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
  2. rs = stmt.executeQuery(sql);
  3.  

además cuando vas a recorrer el resultset con next debes decirle que antes del pasar al siguiente registro debes llevar al primer registro. ejm

Código: Text
  1. rs.beforefirst();
  2. while(rs.next()){
  3.    System.out.println(rs.getString("CAMPO1"));
  4. }
  5.  
también puedes llevar el cursor a una posición exacta con la función absolute(int).

Código: Text
  1. rs.absolute(5);
  2. System.out.println(rs.getString("CAMPO1")); //imprime el registro en la posición 5
  3.  

Bueno espero te sirva este comentario.
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

SFRJ

  • Miembro MUY activo
  • ***
  • Mensajes: 115
    • Ver Perfil
Re: Problemas Al Recorrer Una Base De Datos
« Respuesta #10 en: Miércoles 11 de Junio de 2008, 10:40 »
0
PRUEBA ASI ALOMEJOR FUNCIONA


// Así es como tengo declarado las var
Connection con;
Statement sent
ResultSet result;
String dir = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/base.mdb";  


// Así establezco la conexión con la Base de datos

try {
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
           con= DriverManager.getConnection(dir);
           sent= con.createStatement();
           result = sent.executeQuery("select * from tabla");
           result.next();
           //SI HASTA AKI HA FUNCIONADO FUNCIONARA Y LO SIGUIENTE
           result.previous();

} catch (Exception error) {
                           }

kurofire

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Problemas Al Recorrer Una Base De Datos
« Respuesta #11 en: Miércoles 18 de Junio de 2008, 13:59 »
0
En realidad muy bueno el soporte que da este foro los felicito.