Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #15  
Antiguo 13-11-2014
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 20
Delphitest Va por buen camino
Pues agradecido de nuevo.

Probé con lo que comenta ecfisa pero aunque funciona bien no hace el filtro que necesito ya que muestra, ademas de lo que busco, los registros con campos vacíos.

Al final el código ha quedado como el que os pongo, es con el sistema de engranaje, no se si es lo correcto o no, no entiendo bien la parte que estais debatiendo, pero si que da el resultado que estoy buscando. He añadido hasta 5 edit para adaptarlo y puesto un OR en lugar de AND y ya está operativo.

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

var bOtraCondicion :boolean;

begin
  bOtraCondicion:=false;
  with TBuscarCliente do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM CLIENTES');

    if ( (Edit1.Text <>'') or  (Edit2.Text <>'') or (Edit3.Text <>'') or  (Edit4.Text <>'') or (Edit5.Text <>'') ) then
    begin
      SQL.Add('WHERE');

      if  Edit1.Text <>'' then
      begin
        SQL.Add('NOMBRE LIKE :PNOM ');
        bOtraCondicion:= true;
        Parameters.ParamByName('PNOM').Value:= '%'+Edit1.Text+'%';
      end;

      if  Edit2.Text <>'' then
      begin
        if bOtraCondicion then
        SQL.Add('AND');
        SQL.Add('APELLIDOS LIKE :PAPE');
        bOtraCondicion:= true;
        Parameters.ParamByName('PAPE').Value:= '%'+Edit2.Text+'%';
      end;

      if  Edit3.Text <>'' then
      begin
        if bOtraCondicion then
        SQL.Add('AND');
        SQL.Add('DNI LIKE :PDNI');
        Parameters.ParamByName('PDNI').Value:= '%'+Edit3.Text+'%';
      end;

      if  Edit4.Text <>'' then
      begin
        if bOtraCondicion then
        SQL.Add('AND');
        SQL.Add('PROVINCIA LIKE :PPROV');
        Parameters.ParamByName('PPROV').Value:= '%'+Edit4.Text+'%';
      end;

      if  Edit5.Text <>'' then
      begin
        if bOtraCondicion then
        SQL.Add('AND');
        SQL.Add('TELEFONO_FIJO LIKE :PTFNO');
        Parameters.ParamByName('PTFNO').Value:= '%'+Edit5.Text+'%';
      end;

    end;
    Open;
  end;
end;


Gracias de nuevo a todos, con todos los errores que me han surgido en este tiempo he aprendido ademas de lo buscaba otras cosillas, esto es un mundo y todos los días se aprende algo nuevo.

Un abrazo
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 13:00:09.


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