Buenas a todos.
Quería saber cómo determinar el tamaño de un resultset. Pero sin mover el puntero. ok? No he visto ninguna función que me lo diga directamente.
Si alguien me puede ayudar...
| |||
Tamaño de un Resultset Buenas a todos. Quería saber cómo determinar el tamaño de un resultset. Pero sin mover el puntero. ok? No he visto ninguna función que me lo diga directamente. Si alguien me puede ayudar... |
| |||
Respuesta: Tamaño de un Resultset Es bastante complicado puesto que hay BDDs en las que directamente ese valor no es recuperable sin ir al final del resultset. Habra drivers JDBC o librerías que te lo digan, pero en realidad lo que harán será ir hasta el final del resultset sin que tu lo sepas y darte ese valor. S!
__________________ Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana. |
| |||
Respuesta: Tamaño de un Resultset Yo tenia ese problema para saber si el resulset estaba vacio o no. Seguramente se puede hacer de otra manera, no lo encontré. Supuse que si sabia el numero de registros del resulset sabria si estaba vacia o no. En el archivo que podeis bajar en la dirección que pongo en el topic: "Pasar valores a metodo" ultimo mensaje el día 21 de Mayo Lo siento, pero hasta que no tenga 30 dias y 30 mensajes no puedo postear direcciones. Asi que si alguien tiene alguna pega o no lo encuentra que me lo pida por privado. Un saludo |
| |||
Respuesta: Tamaño de un Resultset Otra solución es hacer un select count(*) con la misma clausula where. Son dos queries en lugar de uno, pero si hay muchas filas y no las has de procesar todas obligatoriamiente, recorrerlas puede ser muy poco eficiente. En caso de poder, otra opción es trabajar "sin saber esa información". Es decir, si no hace falta saber el numero exacto pero simplemente si hay mas o no, trabajar con eso. Claro que no siempre es posible. S!
__________________ Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana. |
| ||||
Respuesta: Tamaño de un Resultset Yo soy partidario de no hacer consultas 'evitables' a la BBDD, a no ser que no haya mas remedio. En este caso concreto, antes de hacer dos consultas, yo propondria almacenar el resultset en algun objeto que nos permitiera saber su tamaño de un modo sencillo, estilo ArrayList, Vector... Para saber su tamaño, solo tendrias que hacer un size() y 'sanseacabo'. Saludos. |
| |||
Respuesta: Tamaño de un Resultset Claro, pero si tienes 1 millon y pico de registros, almacenarlos todos en memoria para hacer un size() es un desperdidicio de memoria. Por eso digo "si no las has de procesar todas" y aun que lo tuvieras que hacer, segun el numero de registros por que meterlas todas en memoria es una buena forma de "hacer saltar la banca". S!
__________________ Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana. |
| |||
Respuesta: Tamaño de un Resultset la interfaz ResultSetMetaData te permite obtener informacion sobre las caracteristicas de los datos referenciados por un resulset, puedes hacer lo siguiente: ResultSetMetaData rd = myresulset.getMetaData(); // Obtenemos el metadata desde el resulset int columnas= rd.getColumnCount(); // devuelve el numero de campos o columnas del resulset Espero te sirva! creo que no consume mucho pues lo que hace es referenciar al resulset. |
| |||
Respuesta: Tamaño de un Resultset Cita: Numero de columnas != numero de registros int columnas= rd.getColumnCount(); // devuelve el numero de campos o columnas del resulset
__________________ Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana. |
| ||||
Respuesta: Tamaño de un Resultset Cita: Claro, por eso digo 'si no hay mas remedio'.
Iniciado por GreenEyed Claro, pero si tienes 1 millon y pico de registros, almacenarlos todos en memoria para hacer un size() es un desperdidicio de memoria. Por eso digo "si no las has de procesar todas" y aun que lo tuvieras que hacer, segun el numero de registros por que meterlas todas en memoria es una buena forma de "hacer saltar la banca". S! Saludos. |
| |||
Respuesta: Tamaño de un Resultset Gracias por las respuestas. En realidad no necesitaba saber el número de filas exacto, sino sólamente si había más de una fila como dijo GreenEyed. De todas formas quería saber si había una forma sencilla de saber el número, ya veo que no. Gracias por todo. |
| ||||
Respuesta: Tamaño de un Resultset Aunque ya está pasado de fecha pero por si a alguien más le ocurre como a mí que entra en el tema buscando una solución, acabo de hacerlo con lo siguiente: rs.last() /* Ir al último registro del ResultSet (rs) */ rs.getRow() /* Devuelve la posición del cursor o número de registro que tiene en ese momento el ResultSet */ Última edición por sara_lissette; 04/04/2012 a las 16:30 Razón: Corrección |