Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > SQL
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 12/02/2008
RoyTan's Avatar
RoyTan RoyTan is offline
Miembro
 
Join Date: Oct 2003
Location: Mijas - Málaga
Posts: 122
Poder: 23
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.
Reply With Quote
  #2  
Old 12/02/2008
Delphius's Avatar
[Delphius] Delphius is offline
Miembro Premium
 
Join Date: Jul 2004
Location: Salta, Argentina
Posts: 5,582
Poder: 28
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]
Reply With Quote
  #3  
Old 12/02/2008
RoyTan's Avatar
RoyTan RoyTan is offline
Miembro
 
Join Date: Oct 2003
Location: Mijas - Málaga
Posts: 122
Poder: 23
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.
Reply With Quote
  #4  
Old 12/02/2008
jachguate's Avatar
jachguate jachguate is offline
Miembro
 
Join Date: May 2003
Location: Guatemala
Posts: 6,254
Poder: 30
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
Reply With Quote
  #5  
Old 12/02/2008
jachguate's Avatar
jachguate jachguate is offline
Miembro
 
Join Date: May 2003
Location: Guatemala
Posts: 6,254
Poder: 30
jachguate Va por buen camino
Quote:
Originally Posted by RoyTan View Post
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
Reply With Quote
  #6  
Old 12/02/2008
RoyTan's Avatar
RoyTan RoyTan is offline
Miembro
 
Join Date: Oct 2003
Location: Mijas - Málaga
Posts: 122
Poder: 23
RoyTan Va por buen camino
Ok, de acuerdo, y muchas gracias a los dos.
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
un Select max de varios campos Camilo SQL 3 07/09/2007 16:34
Top con varios campos trex2000 MS SQL Server 1 04/10/2006 21:12
agrupar varios campos satabel Impresión 0 03/08/2005 18:17
Búsquedas en campos MEMO ingacg Conexión con bases de datos 1 05/12/2003 10:35
Ver varios campos en RxDBLookupCombo kia Varios 1 28/08/2003 21:27


All times are GMT +2. The time now is 14:03.


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