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;