Ver Mensaje Individual
  #3  
Antiguo 07-11-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Puedes usar un simple Locate para posicionarte en el registro que necesites.
El problema de las búsquedas incremetales es la velocidad y los recursos que consumen.
Si es una tabla pequeña, puedes utilizar un ClientDataSet para cargarla en memoria y a partir de ahí realizar la búsqueda.
El problema es si no puedes cargar toda la tabla en memoria (esto no siempre es posible) o es muy grande, porque posiblemente tendrás problemas de velocidad.

Coloca un Edit dobde escribes el texto y una tabla apuntando a la tabla employee de DBDemos ordenada por FirstName; Algo así:

Código SQL [-]
  Select * from employee order by FirstName, LastName

Con este código en el OnChange debería valer.

Código Delphi [-]
  // Busqueda incremental
  ClientDataSet1.Locate('FirstName', Edit1.Text, [loCaseInsensitive, loPartialKey]);

Acabo de subir un ejemplo completo a la sección de ejemplos de mi web. Puedes descargarlo y ver el código fuente.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita