Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-11-2004
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
Como realizo estas busquedas ???

Trabajo con IB6.5 y Delphi 7, y tengo que buscar en una tabla personas y empresas pero la idea es que para buscar a Juan Gonzalez Sanchez, pueda poner en la busqueda algo asi:
ju sanc gon
y que me de como resultado todas las personas que coincidan con esos parametros, sin importar el orden de los parametros y sin saber cuantos parametros de busqueda van ha introducir los usuarios.

Gracias.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
Responder Con Cita
  #2  
Antiguo 04-11-2004
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.275
Poder: 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
Cita:
Empezado por Durbed
...pueda poner en la busqueda algo asi:
ju sanc gon
y que me de como resultado todas las personas que coincidan con esos parametros
Deberías utilizar el operador Like, aunque ésta forma de trabajar es un poco extraña. ¿Quieres que aparezcan los que tienen todas las ocurrencias? ¿O los que tienen como mínimo una? ¿En un único campo o en varios?

Código SQL [-]
 ...(Nombre LIKE 'ju%') or (Nombre LIKE 'sanc%') or (Nombre LIKE 'gon%')

(puedes cambiar el OR por AND), pero ya te digo que no acabo de verlo claro...
__________________
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
  #3  
Antiguo 04-11-2004
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
En varios campos, como pueden ser: Nombre, apellidos, empresa y se tienen que cumplir todos los parametros, es decir que me imagino que sera algo asi:
Código:
 ((Nombre LIKE 'ju%') or (Nombre LIKE 'sanc%') or (Nombre LIKE 'gon%')) and
((Apellidos LIKE 'ju%') or (Apellidos LIKE 'sanc%') or (Apellidos LIKE 'gon%')) and
((Empresa LIKE 'ju%') or (Empresa LIKE 'sanc%') or (Empresa LIKE 'gon%'))
Visto esto, solo faltaria resolver el tema del numero de parametros. Sacar el numero de parametros no es dificil, pues es recorrer la cadena y ver los espacios en blanco o las comas (no tengo decidido el metodo de separacion), pero una vez que tengo los parametros separados como genero la consulta?

Gracias.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
Responder Con Cita
  #4  
Antiguo 04-11-2004
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.275
Poder: 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
Sigo pensando que es un poco extraño y no se que eficiencia puede tener una consulta de este tipo, pero bueno...

Para montar la consulta deberás hecer un While que segun el número de parámetros te monte el Where de la consulta de la forma que tú mismo has definido. Segun el número de las palabras es ir añadiendo elementos a la parte del OR.

Si no te acalras con éste trozo de código dilo.
__________________
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
  #5  
Antiguo 04-11-2004
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
Ya lo tengo resuelto, he añadido otro % al principio de la cadena para que no tenga que comenzar por ese caracter. Respecto a la utilidad de esa busqueda es mucha prque si quieres buscar una persona que se llama juan pero tienes 1000 juanes y solo sabes que de apellido es gomez o gonzalez o algo similar, pues buscar juan go y asi te aseguras un resultado mas ajustado.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
Responder Con Cita
Respuesta



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 20:13:31.


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