Delphi - consulta

 
Vista:

consulta

Publicado por sirjhan (46 intervenciones) el 16/03/2004 21:15:59
Buenas tardes a todos los foristas
Tengo una aplicación y quiero hacer una consulta desde un edit, y que cuando valla digitando letra por letra aparezca dichos registros en un dbGrid automaticamente...

El forista BigLuis me dio este codigo...
Por ejemplo en el evento on Change del TEdit escribes
try
with Modulo.TableDatos do
begin
Indexfieldnames:=DBGrid1.SelectedField.Fieldname;
if length(Edit2.Text)>=3 then
locate(DBGrid1.SelectedField.Fieldname,Edit2.Text,[loPartialKey]);
end;
except
showmessage('No se puede buscar por el campo '+DBGrid1.SelectedField.Fieldname);
end

pero aparece un error diceindo que lopartielKey no esta declarada...

gracias por la atención...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consulta

Publicado por Delfino (1216 intervenciones) el 16/03/2004 22:33:59
Los Datamodules suelen tener ausentes muchas de las units para hacer varias varias, busca en la ayuda de Locate y mira en q unit se encuentra y agrega esta unit a la lista de uses..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta

Publicado por SIRJHAN (46 intervenciones) el 17/03/2004 16:33:46
Ya la unit esta uasada y me sale el mismo erro (no se encuentra declarada lopartielkey)...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta

Publicado por José Arnulfo (8 intervenciones) el 17/03/2004 16:56:10
Haber si entendí... tienes un edit, donde el usuario va introduciendo información, y quieres que se despliege en un DBgrid los datos que coincidan con el contenido que se ha introducido hasta ese momento cierto???, mira, yo hago lo siguiente... Tengo ligado el DBgrid a un Query que voy refrescando en el onchange del edit, y hago mi consulta con SQL. Por ejemplo, si tengo una tabla de empleados, y quiero hacer una consulta por apellido, sería mas o menos lo siguiente:

En el evento onChange del edit pondría lo siguiente:
Query.SQL.Clear;
Query.SQL.Add('Select * from Empleados where Apellido_paterno');
Query.SQL.Add('LIKE '+#39+edit.text+#39);
Query.Open;

Si por ejemplo el edit contiene 'CO', el DBGrid mostrará todos los registros de la tabla empleados cuyo apellido paterno comienza con CO (CORONEL, CORDOVA, CORRAL. ETC,)... Espero que te sea de ayuda...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta

Publicado por José Arnulfo (8 intervenciones) el 17/03/2004 17:04:24
Otra cosa, en el ejemplo falta el operador % que indica comodín... En la condición LIKE seria así:
Query.SQL.Add('LIKE '+#39+Edit1.text+'%'+#39);

En SQL normal seria LIKE 'TEXTO%'; esta consulta regresa todos los registros que comienzen con TEXTO, sin importar que es lo que viene despues;

Si pones lo siguiente

Select * from Empleados where Nombre LIKE '%JOSE%',

Regresa todos los registros que contengan la palabra JOSE en el campo nombre. Espero que se sea de utilidad
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta

Publicado por Sirjhan (46 intervenciones) el 18/03/2004 16:52:32
Muchas gracias.. me sirvio su información
Pero resulta que tengo otro porblema ya para ese dbgrid yo tengo ligado otro Query, sera que se podrá trabajar can mas de una query para ese dbgrid, y si es a si como sería...

Gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta

Publicado por José Arnulfo (8 intervenciones) el 18/03/2004 18:02:32
Mira, no tengo conocimiento de que se pueda asignar dos query a la ves a un DBgrid, pero igual si existe la posibilidad... mira. lo que puedes hacer es que ese query que ya tienes asignado lo utilices tambien para hacer el filtrado, es decir, que solo le agreges la condición con LIKE... igual y funciona... espero que te ayude en algo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta

Publicado por Sirjhan (46 intervenciones) el 18/03/2004 21:46:07
Muchas Gracias José Arnulfo
Se lo agradezco...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar