PDA

Ver la Versión Completa : Subconsulta


DanielAlexander
17-05-2003, 00:35:43
Hola a todos!!!!!!
Tengo una consulta echa con un tQuery y el resultado lo muestro
en un DBgrid, lo que quiero hacer es poder hacer una busqueda
con los resultados que hay en el DBGrid, probé con el TQuery.Locate, pero busca por igual, y a mi me interesa que busque por aproximación, que a medida que el cliente ingresa
en un Tedit una letra se valla refrescando el Dbrid, no se si hay una forma de hacerlo sin usar tablas temporales o vistas.
Muchas gracias y espero me puedan dar una manito.

jhonny
17-05-2003, 00:45:02
Sip, precisamente el Locate te sirve, y tambien te sirve para lo que quieres, puedes hacer lo siguiente:

El procedimiento donde tienes el "Locate" lo llamas cada que el usuario entre una tecla por ejemplo:
Suponiendo que el "codigo" a buscar esta en un TEdit

//procedimiento del Locate

procedure Tform1.Plocate;
begin
Query1.Locate('Codigo',edit1.text,[]);
end;

//Ahora en el OnKeyPress del Edit1

procedure Tform1.Edit1KeyPress(Sender :TObject);
begin
PLocate;
end;

espero te sirva :cool:

roman
17-05-2003, 04:20:36
Posteado originalmente por jhonny
procedure Tform1.Plocate;
begin
Query1.Locate('Codigo',edit1.text,[]);
end;



Creo que le conviene incluir loPartialKey en las opciones del Locate:

procedure Tform1.Plocate;
begin
Query1.Locate('Codigo',edit1.text,[loPartialKey]);
end;


De lo contrario el registro no se moverá hasta que el contenido del Edit coincida completamente con el valor de un campo.

// Saludos

DanielAlexander
19-05-2003, 21:59:56
Muchas gracias a todos!!!!!
Funcionó perfecto lo que me faltaba era agregarle lo que dijo roman "lopartialKey"
Muchas gracias.