Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-02-2008
Avatar de RoyTan
RoyTan RoyTan is offline
Miembro
 
Registrado: oct 2003
Ubicación: Mijas - Málaga
Posts: 121
Poder: 21
RoyTan Va por buen camino
Talking Busquedas en varios campos a la vez

Saludos.

Vamos a ver, en mi base de datos Clientes tengo tres campos que contienen Telefonos, con este codigo colocado en el evento OnKeyPress puedo buscar un número de télefono en los tres campos y funciona perfecto.

if Key = #13 then

Begin

If not ModuloDatos.TCliente.Locate('TELEFONO1',EBuscar.Text,[]) then

If not ModuloDatos.TCliente.Locate('TELEFONO2',EBuscar.Text,[]) then

If not ModuloDatos.TCliente.Locate('TELEFONO3',EBuscar.Text,[]) then

ShowMessage('Número de Teléfono no encontrado.');

EBuscar.Clear;

end;


Mi pregunta es...

¿ Como seria el codigo en SQL ?

Gracias.
Responder Con Cita
  #2  
Antiguo 12-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola RoyTan,

¿Deseas buscar por el AND (Y) o por el OR (O)?
No se termine de comprender...
la idea es esta:

Código SQL [-]
select tus_campos
from tu_tabla
where TELEFONO1 = :TelBuscar AND TELEFONO2 = :TelBuscar AND TELEFONO3 = :TelBuscar

Y en delphi en el query ingresar el parámetro y lanzas la consulta:

Código Delphi [-]
tu_query.ParameterByName('TelBuscar') := EBuscar.text;
tu_query.ExectSQL;

Lo escribí de memoria... no tengo delphi abierto a mano...
Si tienes dudas buscar por ParamByName. o parámetros.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 12-02-2008
Avatar de RoyTan
RoyTan RoyTan is offline
Miembro
 
Registrado: oct 2003
Ubicación: Mijas - Málaga
Posts: 121
Poder: 21
RoyTan Va por buen camino
Hola Delphius, Saludos desde España.

La idea es la siguiente...

Ingresar un número de teléfono en un Edit para que lo busque en tres campos de una base de datos Dbf.

Si no encuentra el número en el primer campo(Telefono1), que pase al siguiente Campo(Telefono2), que no lo encuentra, que busque en el siguiente campo(Telefono3) que no lo encuentra, ShowMessage('Número de teléfono no encontrado');

Que lo encuentra en cualquiera de los campos, pues que detenga la busqueda.

Y perdon por no haberme explicado bien antes.

Saludos y gracias.
Responder Con Cita
  #4  
Antiguo 12-02-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
La sentencia SQL parece bien, solo que el operador debiera ser or, y no and.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 12-02-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por RoyTan Ver Mensaje
Que lo encuentra en cualquiera de los campos, pues que detenga la busqueda.
Para detener la búsqueda después de la primera coincidencia no hay un método 100% estándar, pues cada motor tiene sus propias implementaciones.

Por ejemplo, en oracle podría ser:

Código SQL [-]
select *
  from (select * 
          from tutabla
         where telefono1 = :tel
            or telefono2 = :tel
            or telefono3 = :tel
       )
 where rownum = 1;

Para mostrar el mensaje, pues exploras el resultado y si está vacío lo lanzas, pero esto ya en delphi. No podes mostrar un mensaje al usuario desde el motor de base de datos.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 12-02-2008
Avatar de RoyTan
RoyTan RoyTan is offline
Miembro
 
Registrado: oct 2003
Ubicación: Mijas - Málaga
Posts: 121
Poder: 21
RoyTan Va por buen camino
Ok, de acuerdo, y muchas gracias a los dos.
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
un Select max de varios campos Camilo SQL 3 07-09-2007 16:34:15
Top con varios campos trex2000 MS SQL Server 1 04-10-2006 21:12:15
agrupar varios campos satabel Impresión 0 03-08-2005 18:17:17
Búsquedas en campos MEMO ingacg Conexión con bases de datos 1 05-12-2003 10:35:23
Ver varios campos en RxDBLookupCombo kia Varios 1 28-08-2003 21:27:00


La franja horaria es GMT +2. Ahora son las 06:11:56.


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