Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2013
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question Consulta 1 Edit a 2 Columnas de una Tabla

Estimados, acudo a ustedes nuevamente ya que tengo tremenda duda existencial, gracias de antemano ante cualquier ayuda .
Tengo una Tabla que entre varias columnas existen "Nombre" y "Apellido Paterno", hasta ahora tengo la consulta para buscar o por nombre o por apellido y funciona perfecto, la duda: existe la forma de poder "Filtrar" las 2 columnas según el criterio de 1 "Edit"???, en este caso algo así:

Nombre Apellido Paterno
1) Juan Tapia
2) Maria Mora
3) Jose Salas

La idea es que al escribir "i" queden en este caso filtrado la fila 1 y 2, ya que 1 tiene "i" en el apellido y 2 en el nombre.

Quedo atento a sus comentarios y nuevamente gracias por cualquier ayuda.
Responder Con Cita
  #2  
Antiguo 12-07-2013
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Hola Lenny,

Esto es lo que buscas:
Código Delphi [-]
...
begin
  with ADOQuery1 do
  begin
    Connection := ADOConnection1;
    SQL.Add('SELECT');
    SQL.Add('    NOMBRE');
    SQL.Add('    ,APELLIDOPATERNO');
    SQL.Add('  FROM Clientes');
    SQL.Add('  WHERE')
    SQL.Add('    (');
    SQL.Add('      NOMBRE LIKE ' + QuotedStr('%' + Edit1.Text + '%'));
    SQL.Add('      OR APELLIDOPATERNO LIKE ' + QuotedStr('%' + Edit1.Text + '%'));
    SQL.Add('    )');

    Open;
  end;
end;
Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #3  
Antiguo 12-07-2013
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 21
rafita Va por buen camino
Hola,
Depende de cómo accedas a las bases de datos. Si haces consultas SQL puedes usar una sentencia Select con el operador LIKE:

SELECT Nombre, Apellidos FROM MiTabla WHERE (Nombre like '%'+Edit1.Text+'%') or (Apellidos like '%'+Edit1.Text+'%')

saludos
__________________
Rafita.
Responder Con Cita
  #4  
Antiguo 12-07-2013
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Talking

Sorry, cometí el error de no adjuntar el código que uso hasta ahora y mencionar con que BD trabajo.

Así es como hago als consultas normalmente:

Código Delphi [-]
procedure TClientes.Edit2Change(Sender: TObject);
const
 // suponiendo que esta sea tu consulta
 STRSQL = 'Select * from CONTACTOCLIENTE ';
 STRORDER = ' ORDER BY NOMBRES';
begin
   BDatos.QContactoCliente.Close;
   // Está vacío
   if (Edit2.Text = '') then begin
     BDatos.QContactoCliente.SQL.Text := STRSQL;
   end
   else begin
     // montamos la sql
     BDatos.QContactoCliente.SQL.Text := STRSQL +
        // Añadimos el WHER
        ' WHERE Upper(NOMBRES) LIKE Upper(' + QuotedStr('%' + Edit2.Text + '%') + ')' +
        // Añadimos el orden
        STRORDER;
   end;
   BDatos.QContactoCliente.Open;
end;

Funciona perfecto, si no mal recuerdo lo saque de un ejemplo de esta misma pagina (no recuerdo a nombre de quien por los créditos)...

Utilizo MySQL y los conectores ZEOS, vere si puedo usar parte de los códigos que me dieron, quedo atento a cualquier comentario y gracias.
Responder Con Cita
  #5  
Antiguo 12-07-2013
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Talking

Gracias estimados, dando vueltas con sus comentarios y códigos aplicándolo a lo que tenia resulto perfecto y quedo así:

Código Delphi [-]
procedure TClientes.Edit2Change(Sender: TObject);
const
 // suponiendo que esta sea tu consulta
 STRSQL = 'Select * from CONTACTOCLIENTE ';
 STRORDER = ' ORDER BY NOMBRES';
begin
   BDatos.QContactoCliente.Close;
   // Está vacío
   if (Edit2.Text = '') then begin
     BDatos.QContactoCliente.SQL.Text := STRSQL;
   end
   else begin
     // montamos la sql
     BDatos.QContactoCliente.SQL.Text := STRSQL +
        // Añadimos el WHER
        ' WHERE Upper(NOMBRES) LIKE Upper(' + QuotedStr('%' + Edit2.Text + '%') + ')' +
            'or Upper(APELLIDO) LIKE Upper(' + QuotedStr('%' + Edit2.Text + '%') + ')' +
        // Añadimos el orden
        STRORDER;
   end;
   BDatos.QContactoCliente.Open;
end;

Muchas gracias!!!
Responder Con Cita
  #6  
Antiguo 15-07-2013
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Hola Lenny,

Me alegra que te haya funcionado correctamente.

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
Respuesta


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
Consulta con Filas en Columnas afxe SQL 3 30-01-2011 14:52:18
Consulta de Filas y Columnas mjjj SQL 1 19-02-2010 22:24:36
Delete de los datos de columnas no de tabla FGarcia SQL 3 28-12-2007 01:40:56
Comparar un registro de un edit con un registro de una tabla en una consulta Damian666 SQL 10 01-10-2005 00:43:20
Contar Columnas de una Tabla. nicolasdom Conexión con bases de datos 3 23-09-2004 21:03:28


La franja horaria es GMT +2. Ahora son las 10:13:19.


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