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-05-2003
Avatar de X-JABS
X-JABS X-JABS is offline
Miembro
 
Registrado: may 2003
Ubicación: Ometepec, Gro. Mexico
Posts: 26
Poder: 0
X-JABS Va por buen camino
Buscar en dos campos como uno

Saludos Foro!

Para iniciar, necesito saber como hacer una busqueda en dos campos como si fuera uno solo,

P/E:

[ APELLIDOS ] [ NOMBRE ]
MARTINEZ DE LA BARCENA JAVIER

y el usuario buscaría..

javier martinez de la barcena

como puedo hacerlo: con SQL, con FILTER, a ver si alguien puede iluminarme..
__________________
'seY sbaJ, K28D4! 52:11 - > Ok
Responder Con Cita
  #2  
Antiguo 04-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
con una instruccion SQL es posible

Código:
select *
from clientes
where upper(apellidos) like upper('%MARTINEZ DE LA BARCENA%') and
       upper(nombre) like upper('%JAVIER%')
espero sea esto lo que querias

NOTA : casi se llama como yo
Responder Con Cita
  #3  
Antiguo 04-05-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Table1.Filter:='Apellidos='+QuotedStr(Edit1.Text)+'And Nombre ='+QuotedStr(Edit2.Text);
Table1.Filtered:=True;

Esto funcionará siempre y cuando la búsqueda resulte exacta, es decir no sirve para valores aproximados.

También podrias utilizar LOCATE.

Un saludo.

Última edición por marcoszorrilla fecha: 04-05-2003 a las 16:43:49.
Responder Con Cita
  #4  
Antiguo 07-05-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Posteado originalmente por cadetill
Código:
select *
from clientes
where upper(apellidos) like upper('%MARTINEZ DE LA BARCENA%') and
       upper(nombre) like upper('%JAVIER%')
Pero esto supondría que sabemos cómo separar el nombre de los apellidos y en tal caso quizá no habría la necesidad de buscar como si fuera un sólo campo. ¿No sería mejor algo así como?

Código:
select * from clientes
where upper(concat(nombre, ' ', apellidos)) like 'JAVIER MARTINEZ DE LA BARCENA'
De esta forma podríamos pasar toda la cadena como parámetro.

// Saludos
Responder Con Cita
  #5  
Antiguo 08-05-2003
Avatar de X-JABS
X-JABS X-JABS is offline
Miembro
 
Registrado: may 2003
Ubicación: Ometepec, Gro. Mexico
Posts: 26
Poder: 0
X-JABS Va por buen camino
Saludos Foro,

Gracias por sus respuestas, me han valido, en especial a Roman, que era mas lo que necesitaba..

Tk's.
__________________
'seY sbaJ, K28D4! 52:11 - > Ok
Responder Con Cita
  #6  
Antiguo 09-05-2003
Avatar de X-JABS
X-JABS X-JABS is offline
Miembro
 
Registrado: may 2003
Ubicación: Ometepec, Gro. Mexico
Posts: 26
Poder: 0
X-JABS Va por buen camino
Una duda mas!

en la consulta de pronto aparece el mensaje

"la función "upper" no esta definida en la expresión"

lo mismo pasa para para "CONCAT",

"la función "concat" no esta definida en la expresión"

, que pasa el motor de la base de datos no soporta estas instrucciones?

Utilizo ACCESS y DAO, ADO...??

muchas gracias...
__________________
'seY sbaJ, K28D4! 52:11 - > Ok
Responder Con Cita
  #7  
Antiguo 09-05-2003
Avatar de X-JABS
X-JABS X-JABS is offline
Miembro
 
Registrado: may 2003
Ubicación: Ometepec, Gro. Mexico
Posts: 26
Poder: 0
X-JABS Va por buen camino
Bueno solo me he contestado,
ciertamente era lo que sexospechaba,

para MS Access seria así:


SELECT * FROM TblPacientes
WHERE UCASE(Nombre+' '+Apellidos) Like '*JAVIER MARTINEZ DE LA BAR*';

Lo comento en el foro, para que sirva a alguien mas,
como dije antes, otra vez gracias a las personas que me dieron una solución!

Ho!, ademas agrego el link de la pagina que me ha sacado de la duda, por que hay otras especificiones que pueden ayudar en SQL..

http://www.qsl.net/

Saludos!
__________________
'seY sbaJ, K28D4! 52:11 - > Ok

Última edición por X-JABS fecha: 09-05-2003 a las 07:47:04.
Responder Con Cita
  #8  
Antiguo 09-05-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Tienes razón x-jabs, faltó aclarar que las funciones upper y concat dependen del dialecto sql en particular. Pero la idea era convertir el texto en mayúsculas para la comparación y concatenar cadenas. Incluso los asteriscos que usas también dependen del sql que específico. En Paradox, por ejemplo, se usa % en lugar de *.

Que bueno que ya pudiste resolver tu problema.

// Saludos

pd: Le echaré un vistazo a la página que indicas.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como buscar texto juziel Varios 2 24-06-2005 00:46:40
Campos booleanos Eduardo Firebird e Interbase 3 02-11-2003 22:11:20
Como actualizar campos de Texto en FireBird DavidR Conexión con bases de datos 2 01-11-2003 01:12:28
Como buscar todos los registros que incluyan una cierta cadema kasieyes SQL 3 28-10-2003 05:03:53
buscar como en el winamp DJ VMan Varios 0 21-10-2003 04:44:54


La franja horaria es GMT +2. Ahora son las 20:43:01.


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