PDA

Ver la Versión Completa : busquedade registros mientras se tipea


darioEsp
15-05-2004, 20:07:16
hola soy dario necesito hacer justamente eso ( busquedade registros mientras se tipea ) estoy trabajando con MySQL y necesito hacer esa busqueda sobre mas de 30.000 registro si es posible con un ListBox que permita crear mas de una columna.
Desde ya muchas gracias

jachguate
16-05-2004, 08:19:05
No te aconsejo el uso de ListBox. Podes hacerlo con un Edit y un boton, de manera que , una vez entrado el criterio de busqueda, podas ejecutar un Select con la condicion deseada.

Podria ser algo como:


Select *
from tabla
where nombre like :nombre;


y en el onClick del boton:


Query1.ParamByName('nombre').AsString := Edit1.Text + '%';
Query1.Open;


hasta luego.

;)

sanxpue
17-05-2004, 18:44:41
Yo no lo he probado con 30,000 registros pero tal vez sirva, hay que probarlo
En el Evento OnKeyPress de un TEdit

//supongamos que los ordenas por el campo nombre

Tabla1.Locate('Nombre',Edit1.Text,[IoPartialKey]);


Eso te va llevando cada vez que oprimes una tecla al primero que mas se le paresca :D

delphi.com.ar
17-05-2004, 18:58:06
Si te interesa, en mi página hay un componente llamado TDBIncrementalSearch que tiene una funcionalidad similar a lo que pides, como desventaja te comento que no puedo publicar el código del mismo y creo que con 30000 la mejor solución es la que te comenta jachguate.

Saludos!

roman
17-05-2004, 19:25:31
Quizá aquí la pregunta inicial sería ¿por qué muestras 30,000 registros al usuario? Normalmente será mejor que le proporciones un método de búsqueda que restrinja los resultados que traes de la base de datos (algo como lo que propone jachguate o más sofisticado dependiendo de tu caso particular) y entonces sí, utilizar lo propuesto por Sanxpue o delphi.com.ar

// Saludos