Ver Mensaje Individual
  #7  
Antiguo 05-04-2004
Avatar de Voutarks
Voutarks Voutarks is offline
Miembro
 
Registrado: jul 2003
Ubicación: Islas Canarias
Posts: 118
Reputación: 21
Voutarks Va por buen camino
Lo tuyo tiene muy fácil solución.

En primer lugar, ¿tu estas mostrando un grid con seis mil y pico registros? porque eso no es un buen diseño para aplicaciones en red. Es el típico error en el que caemos todos los que pasamos de sistemas locales navegacionales a sistemas cliente/servidor. No tiene sentido que tengas abierto un conjunto de datos tan grande y localizar un registro concreto de esa manera.

Regla número 1: no hay que mostrar nada hasta que el usuario introduzca qué quiere buscar de una manera concreta. Y no hay opción para mostrar todos los registros. Si tienes un grid queda mas 'bonito' ocultarlo y mostrar otra cosa hasta que se haga la búsqueda (como alguna imagen). Lo ideal sería tener en el servidor un procedimiento almacenado que haga la consulta y cuente los registros; si son más de 200 se lanza un evento y entonces se le informa al usuario de que tiene que especificar más la búsqueda. La excepción a esto sería cuando se hacen consultas informativas o estadísticas. Pero para eso lo más recomendable es que se haga en otra parte del programa, específica para ese tipo de menesteres y con características particulares.
Lo que quiero decir, finalmente, es que muy pocas veces tiene sentido mostrar un grid, o más generalmente, tener abierto un conjunto de datos navegable, con más de 150 o 200 registros.

¿Que hacer? Lo que ya se ha dicho: utilizar sql. Si se quiere simplemente recuperar un registro yo utilizo un componente sql ligero, sin cursores bidireccionales, lanzo la consulta, recupero el registro, que de esta manera se hace de forma casi-instantánea incluso para tablas grandes si están bien puestos los índices, y luego hago con él lo que quiera.

Aun a riesgo de caer pesado repito: si lo que quieres es localizar un registro, es decir, mover el cursor, a un registro concreto dentro de un conjunto de registros grande, como una tabla entera, los cuales estás mostrando en panalla, no le des más vueltas, no tiene razón de ser; cambia el chip.
__________________
Emilio J. Curbelo
Responder Con Cita