Delphi - Probrema con LIKE

 
Vista:

Probrema con LIKE

Publicado por Magbeto (29 intervenciones) el 20/03/2007 00:53:48
Hola gente he aqui un pequeño problemita quiero utilizar LIKE en la propiedad Filter de un TTAble y al Ejecutarlo me manda "operation not applicable"..

Table.Filter:='Nombre Like ' + QuotedStr('%'+Edit1.Text+'%');
Table.Filtered:=True;

lo he hecho con TQuery y si funciona podria alguien decirme como se utiliza en el componente TTable
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
sin imagen de perfil
Val: 65
Oro
Ha aumentado 1 puesto en Delphi (en relación al último mes)
Gráfica de Delphi

RE:Probrema con LIKE

Publicado por E.T. (1228 intervenciones) el 21/03/2007 23:41:18
El "like" no te funciona en el filtro puesto que es sintáxs de sql, la cual se maneja en los query's, tendrás que hacer bastante trabajo en el filter o usar el query
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:Probrema con LIKE

Publicado por Magbeto (29 intervenciones) el 22/03/2007 18:03:04
podrias darme una idea de como puedo sustituir "like"
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
sin imagen de perfil
Val: 65
Oro
Ha aumentado 1 puesto en Delphi (en relación al último mes)
Gráfica de Delphi

RE:Probrema con LIKE

Publicado por E.T. (1228 intervenciones) el 22/03/2007 23:40:21
Que tal tengo lo siguiente, es lo más parecido que tengo al LIKE, sólo que no funciona igual

Tengo un TEdit en el cual en su evento OnChange ponemos el siguiente código
Aparte tenemos un TComboBox en el cual pondremos los criterios de búsqueda
los cuales son Nombre, Apellido Paterno, Apellido Materno, y Matrícula

0:Alumnos.Filter:='Nombre='+QuotedStr(EdBus.Text+'*');

La linea de arriba es el ejemplo que tomaré para explicarte:
El cero del inicio es el índice que tomaremos de la propiedad itemindex del combobox, lo siguiente es el filtro de la tabla en la que haremos la búsqueda, y luego el campo que buscaremos, aqui hay que poner atención como el campo "Nombre" de mi tabla es tipo string la cadena que buscaremos debe de estar entre comilla sencilla es por eso del QuotedStr, el último asterisco es para que busque la cadena que ponemos en el edit más cualquier cadena que le siga, es decir, si buscamos un nombre que empieze con "B"me va a mostrar esta lista:

Bladimir
Brisa
Brenda

si le agregaramos "Br" mostraría

Brisa
Brenda

si le agregaramos "Bre" mostraría

Brenda

y así sucesivamente, ahora no es como el LIKE puesto que éste te muestra resultados que contengan la cadena que pusimos si ésta está dentro del valor del campo de búsqueda, es decir, si buscamos la cadena "A" el like nos mostraría:

Guadalupe, Marco, Brenda, Armando Ana, puesto que la cadena "A" está dentro de todos estos valores en cambio con el filter de la tabla no daría

Ana, Armando puesto que el filter sólo funciona con valore que empiezen con la cadena dada, espero me haya explicado, sino, qui estoy pregunta

procedure TFBajas.EdBusChange(Sender: TObject);
begin
if EdBus.Text='' then begin
Alumnos.Refresh;
Alumnos.Filtered:=false;
end
else begin
if CoBoBus.ItemIndex=-1 then begin
Showmessage('Selecciona una categoría de búsqueda');
Alumnos.Filtered:=false;
CoBoBus.SetFocus;
end
else begin
Alumnos.Filtered:=true;
Case CoBoBus.ItemIndex of
0:Alumnos.Filter:='Nombre='+QuotedStr(EdBus.Text+'*');
1:Alumnos.Filter:='Ap_P='+QuotedStr(EdBus.Text+'*');
2:Alumnos.Filter:='Ap_M='+QuotedStr(EdBus.Text+'*');
3:Alumnos.Filter:='Matricula='+QuotedStr(EdBus.Text+'*');
end;
Alumnos.Refresh;
end;
end;
end;
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