Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 05-04-2004
Avatar de Voutarks
Voutarks Voutarks is offline
Miembro
 
Registrado: jul 2003
Ubicación: Islas Canarias
Posts: 118
Poder: 24
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
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:48:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi