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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-11-2014
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
Delphitest Va por buen camino
Sentencia SQL con varios campos

Buenas Tardes,

pese a que hay mucha información en el foro relacionada con lo que busco, no soy capaz de ponerlo en practica y hacer que funcione.

He creado un Form para buscar en una Query un determinado cliente, para ello lo que pretendo es a través de varios edit y del evento onchange ir filtrando un DBGrid de tal manera que a medida que vaya escribiendo por ejemplo el nombre, los registros de la query se vayan adaptando a la búsqueda.

Pongo un pantallazo del Form y el codigo que estoy probando:

Código Delphi [-]
procedure TFBuscaCliente.Edit1Change(Sender: TObject);

var filtro1 :String;
var filtro2 :String;
var filtro3 :String;
var filtro4 :String;
var filtro5 :String;

begin
    If (Edit1.text <> '') then
    filtro1 := 'nombre like ' + QuotedStr('%' + Edit1.Text + '%');
    If (Edit2.text <> '') then
    filtro2 := 'Apellidos like ' + QuotedStr('%' + Edit2.Text + '%');
    If (Edit3.text <> '') then
    filtro3 := 'DNI like ' + QuotedStr('%' + Edit3.Text + '%');
    If (Edit4.text <> '') then
    filtro4 := 'Provincia like ' + QuotedStr('%' + Edit4.Text + '%');
    If (Edit5.text <> '') then
    filtro5 := 'Telefono_Fijo like ' + QuotedStr('%' + Edit5.Text + '%');
    IF (Edit1.Text = '') and (Edit2.Text = '') and (Edit3.Text = '') and (Edit4.Text = '') and (Edit5.Text = '') then
    begin
    TBuscarCliente.close;
    TBUscarCLiente.SQL.text :=  'Select * from clientes order by nombre';
    TBuscarCliente.open;
    end
    else
    begin
    TBuscarCLiente.Close;
    TBuscarCliente.SQL.Clear;
    TBUscarCLiente.SQL.text := 'Select * from clientes where ' + filtro1;
    TBuscarCliente.Open;
    end;
end;

http://www.clubdelphi.com/foros/atta...1&d=1415810826

Con lo que tengo hecho funciona perfectamente pero solo para el campo nombre (edit1) y si lo cambio para el apellido tambien funciona.

Lo que busco es, si se puede, que tenga en cuenta todos los edit a la hora de hacer el filtro. Asi si pongo "juan" en el nombre y "gon" en apellidos la busqueda sería más precisa.

Antes de preguntar he hecho combinaciones de variables e intentando concatenar con "and" la condición de la sql pero no doy con ello.

Si me pudierais orientar sería de agradecer.

Un saludo
Imágenes Adjuntas
Tipo de Archivo: jpg BuscarCliente.jpg (35,1 KB, 4 visitas)
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
 



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
ayuda con sentencia sql para campos blob en interbase xor Firebird e Interbase 3 16-10-2007 22:52:52
varios campos en un dblookupcombobox anubis Varios 6 26-06-2007 04:24:50
como funciona la sentencia locate para campos multiples lugabame Tablas planas 3 17-05-2007 07:52:34
Agregar Varios campos en la sentencia SELECT m.ruiz SQL 5 23-01-2007 17:42:09
Top con varios campos trex2000 MS SQL Server 1 04-10-2006 21:12:15


La franja horaria es GMT +2. Ahora son las 20:05: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