Ver Mensaje Individual
  #3  
Antiguo 06-11-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 28
Delphius Va camino a la fama
¿A que te refieres cuando dices Tipo de búsqueda?
De lo que dices, todo se resume a un consulta SQL como

Código SQL [-]
SELECT tus-campos FROM tus-tablas WHERE tu-condicion-de-busqueda

Luego el conjunto de datos devuelto queda en el DataSet y será mostrado en un DBGrid si los enlazas con el respectivo DataSource. Tan simple como eso, o es que yo no entiendo el rollo.

Ahora si tu de dicho consulta pretendes localizar o refinar más las cosas, tienes a disposición el método Locate() o también de la posibilidad de filtrar gracias a Filter y Filtered. Pero ya sea cualquiera de estas dos alternativas, se pueden reemplazar y hacerlo vía sql añadiendo las debidas condiciones necesarias para ello:

Código SQL [-]
SELECT tus-campos FROM tus-tablas WHERE tu-condicion-de-busqueda AND tu-condicion-refinada

Cuanto más filtrado se regresen los datos mejor.

En el único escenario que imagino "tipos" de búsqueda es que se te ocurra traerte todos los datos (repito, lanzando un SQL), y abandonar el uso de Filtros y/o Locates() e irte por la implementación de tus propios algoritmos de búsqueda. De lo que según yo recuerdo por las clases de Estructura de Datos, solo hay dos posibilidades: Búsqueda secuencial y/o Búsqueda Binaria. El 1ro recorre el conjunto de datos evaluando elemento a elemento, el segundo sólo aplica cuando se tiene la seguridad de que los datos están ordenados (lo que nos llevaría a que la consulta SQL tenga una cláusula ORDER BY) y lo que hace es buscar en base a un elemento pivote (generalmente el elemento central) y decidir repetir la búsqueda de forma recursiva en la primera o segunda mitad del conjunto.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita