FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Registros en en bloques de 100 o mas...
Hola a todos...
Bueno tengo delphi 2007, Zeos y Firebird 2.1. Mi pregunta es, como tengo muchos registros y al hacer un select * se bloquea o demora mucho al tratar de hacer post cuando he realizado un insert, mi pregunta es como puedo hacer un select de 100 registros y que si uno le da next en el registro 100 pase al siguiente bloque de registros y no me bloquee esto, en caso contrario de que no se pueda me gustaria entonces saber que sugerencias tienen. Gracias de antemano. |
#2
|
||||
|
||||
Primero de todo, no hagas " select * " !!!
Pon un filtro para traerte sólo los registros que necesites. Luego puedes usar " select first 100 ... " |
#3
|
||||
|
||||
te trae los 100 primeros registros, después solo modificas el query de acuerdo con la centana que quieras ver:
Y así sucesivamente
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#4
|
||||
|
||||
Hola, que yo sepa limit no existe en Firebird, pero se podría usar skip y first:
donde el 100 del skip la primera ves sería 0 y cada ves que presiones Next aumentas en 100, osea utilizas una variable la cual vas incrementando.... Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#5
|
||||
|
||||
Que feo, tener que hacer un subquery para algo así. Por cierto el query que tiene el skip le va a salir a razón de lo mismo pues digamos que tienes 10 mil registros y los quieres ver de 100 en 100. En ese query te va a traer 9900 registros inicialmente, lo que casi es lo mismo que traer todos, curiosamente la consulta de los últimos registros será más rápida que la de los primeros pues cada vez iran quedando menos. Aunque funciona, no me parece muy óptimo que digamos.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#6
|
||||
|
||||
Se puede hacer así:
|
#7
|
||||
|
||||
Si tienes una mejor solución porque no la pones, como dije Limit no existe en Firebird y por lo menos yo, no he encontrado ninguna función que se asemeje a Limit.
Cita:
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#9
|
||||
|
||||
No te molestes caro, en todo caso no es culpa tuya sino del motor. Yo comento únicamente lo que pienso respecto a las diferencias entre motores, como se ve cada uno tiene un pie de donde cojear.
La solución de casimiro es la equivalente al "limit" que yo sugerí y como dice Jose Román, al final el ganador es él pues tiene mucha información para continuar con su proyecto. Egostar apunta algo interesante, desgraciadamente las diferencias en rendimiento no la sve uno mas que en tablas con millones de registros lo que por lo que he visto en el foro solo se da en unos pocos caso, casi siempre se trata aquí de proyectos de unos cuantos miles de registros. Donde algunos milisegundos no hace ninguna diferencia.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cómo evitar ejecutar bloques en el IDE | Eyewitness | Varios | 9 | 03-08-2013 12:55:04 |
Interconexion de bloques | astwin | OOP | 19 | 15-04-2009 17:50:31 |
Generar bloques de números | Natasha Nortman | Varios | 8 | 30-03-2008 15:47:54 |
Esquemas de bloques | david.rguez | Gráficos | 1 | 01-09-2007 00:05:01 |
Bloques De Numeros Consecutivos | dany2006 | C++ Builder | 5 | 15-11-2006 21:06:16 |
|