FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Búsqueda "incremental" en una base de datos
Hola,
De antemano le anticipo que si este hilo no va aqui lo muevan al debido lugar donde debe de ir. Lo que intento hacer es realizar una busqueda que cuando vaya poniendo las letras me vaya apareciendo los resultados. Ejemplo: Si busco un registro por nombre. Busco el nombre Manuel peo que me aparezcan los demas que empieza con m y a medida que siga poniendo las demas letras se vaya reduciendo la lista hasta quedar el que busco. Salu2. |
#2
|
||||
|
||||
Hola,
Cita:
De momento quédese el hilo donde está, hasta más ver. Lo que sí he hecho ha sido editar el título del hilo, porque "Búsqueda" sólo quedaba un poco abstracto, por decirlo así. Piensa que en los títulos de los hilos se basan luego las búsquedas que se pueden llevar a cabo en los foros, de ahí la importancia de que tengan un título descriptivo. |
#3
|
||||
|
||||
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í:
Con este código en el OnChange debería valer.
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. |
#4
|
|||
|
|||
Hola,
Neftali probe tu ejemplo y es lo que quiero hacer, intente hacerlo por mi mismo pero no pude. POr cierto mi base de datos esta hecha en access no se si me puedes dar una manito en eso. Saludos. |
#5
|
|||
|
|||
para busquedas incrementales yo uso like
conforme el usuario va escribiendo en un textbox en el onkeypres del textbox hago lo siguiente. if textbox1.text<>'' then begin dbbrid1.beginupdate query1.close query1.sql.add('select from tabla1 where tabla1.campo like '%dato%') query1.open dbgrid.endupdate end; con esto , el dbgrid se va posicionando localizando el registro correspondiente conforme vamos escribiendo o borrando. en acces el like creo que no hay que ponerle % , el codigo es solo como funciona , hay que adaptarlo un poco. nota : para optimizar ,tambien se puede poner un temporizador (y meter el codigo en el temporizador) , y en el onkeypress dehabilitar y habilitar el temporizador , de unos 200/300ms. asi cuando escriba , no se posiciona cada vez que apretemos una tecla sino que lo hace cuando pase x tiempo despues de apretar la ultima tecla. saludos. |
#6
|
||||
|
||||
¿Exactamente qué pasó?
¿Error? En principio la Base de Datos no tiene nada que ver, si te fijas en el ejemplo, la búsqueda se hace sobre los datos que ya hay cargados en el DataSet (vía TClientDataSet), por lo tanto es independiente de cómo se carguen los datos. De todas formas he modificado el ejemplo para permitir cargar los datos desde un XML o desde un MDB.
__________________
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. |
#7
|
||||
|
||||
Cita:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#8
|
||||
|
||||
Eso siempre!!! En eso estoy con Lepe.
Aunque te he dado la solución, tengo que decir que si vas a acabar buscando por Manolo, yo también encuentro una tontería buscar por: m, ma, man, mano, manol y finalmente manolo. Lo que pasa que queda muy bonito y a los clientes les gusta mucho; Básicamente a ellos les da igual que para hacerlo así debas generar más tráfico de red de la cuenta o traerte muchos más registros de los necesarios,... Eso sí luego que funcione, que vaya muy rápido y que consuma poco...
__________________
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. |
#9
|
|||
|
|||
Estaba viendo este codigo que genero marcsc:
Neftali si tu pudieras poner un pequeño ejemplo hecho en access podria guiarme de ahi, ya que vi en el tuyo que usabas un archivo xml. Saludos |
#10
|
||||
|
||||
Cita:
Cita:
__________________
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. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Incremental en red | jgmarduel | Conexión con bases de datos | 3 | 19-12-2005 15:52:36 |
QRLabel incremental | Barzaugc | Impresión | 3 | 17-06-2005 11:17:58 |
Consulta Busqueda Incremental | Gustavo Gowdak | SQL | 1 | 13-12-2004 09:27:08 |
respaldo incremental | juan hernandez | Linux | 1 | 04-12-2004 15:30:30 |
busqueda incremental con ado | slat | Conexión con bases de datos | 1 | 11-07-2004 18:32:52 |
|