Es decir, tenemos una tabla de la siguiente manera:
ID - Nombre
1 Miguel
2 Martin
3 Jerry
4 Tadeo
5 Jesus
En el edit escribimos JE y en el grid solo nos apareceran:
ID - Nombre
3 Jerry
5 Jesus
Pues ahora filtramos los campos solamente con los que empiecen con JE.
Esto se realiza con un LIKE en SQL que sería así:
Select id, nombre From MiTabla Where nombre LIKE '%JE%'
El codigo queda en el evento OnChange del Edit.
procedure TLaForma.edt_nombreChange(Sender: TObject);
var
vstrCadena: String;
begin
vstrCadena:= 'Select id, nombre from tabla Where nombre LIKE '+char(39)+'%'+edt_nombre.Text+'%'+char(39);
with ZQ_Consulta do
begin
Close;
SQL.Clear;
SQL.Add(vstrCadena);
try
Open;
except
ShowMessage('No se pudo ejecutar la consulta');
end;
end;
end;
Donde mi ZQ_Consulta es un TZQuery. Igual funciona para un TADOQuery normal.
Pero el hecho de que sea un %Je% ¿también traeria aquellas palabras que contengan esas letras en cualquier parte de su cadena?.
ResponderEliminarPor cierto ¿para que Char(39)?
Tienes razón, pido una disculpa... me falto aclarar eso.. tambien se muestran las cadenas que contengan JE dentro de ellas, por ejemplo si en lugar de Miguel dijera Mijel :P, tambien traería ese resultado.
ResponderEliminarEl Char(39) es es apostrofe ('), recuerdo que en una versión de delphi no me reconocio el apostrofe como ''' así que he decidido usarlo siempre como caracter ASCII.
Saludos.