Ayuda con delphi

Estoy aprendiendo a utilizar este lenguaje de programación. Pero no se me ocurre como hacer que las búsquedas que hago en la base de datosme las muestre en una lista. Ejemplo
si busco todo lo que tenga "ma", quiero que me muestre todos lo resultados en una lista apilados. ¿Con qué componente lograría esto?
Así ubico el campo:
DM.T1.Locate('TITULO', EBusTITULO.Text, [loPartialKey]);
Desde ya muchas gracias
martin

1 Respuesta

Respuesta
1
Sencillo, tienes dos maneras, una puede ser filtrando esa misma tabla:
with DM.T1 do begin
Filter:= 'campo=ma*';{esto es todo lo que empiece con 'ma'}
Filtered:= true;
end;
Esto te deja disponible en la tabla solamente los registros que caigen dentro dle filtro, o sea que si recorres la tabla ahí tendrás solamente los que empiecen con 'ma' hasta que limpoies el filtro:
DM.T1.Filter:= '';
O lo cierres:
DM.T1.Filtered:= false;
Lo otro que puedes hacer es usar una TQuery en vez de un TTable y la sentencia SQL seria la siguiente:
SELECT * FROM TABLA WHERE CAMPO LIKE 'MA*'
como armarias el string para ponerle al filter. Con los datos de un edit. Gracias
Muchas gracias por tu respuesta, me sirvió de mucho. Pero donde los mostrarías estos datos filtrados, o sea que componente visual usarías...
Muchas gracias
Martin
Y por ejemplo si busco solo una parte que puede estar en cualquier parte de la palabra. Ej: busco 'tu', y existe la palabra titulo para que encuentre. ¿Cómo hago?
Gracias
Los resultados puedes mostrarlos en un DBGrid, son para eso.
La cadena la armas así:
cad:= 'nombrecampo lile %' + edit1.text + '%'
Eso te busca el texto del edit en cualquier parte del campo nombrecampo
Con esa expresión que me pones me tira un error de filtro. En teoría tendría que funcionar pero no funciona.
Así logre filtrar pero de la primer forma (osea, comparando la primera parte de la palabra.)
DM.T1.Filter:= 'TITULO'+'='''+EBusTITULO.Text+'*'+'''';
Así funciona bien
Pero no logro filtrar con caracteres en cualquier parte de la palabra.
Gracias
DM.T1.Filter:= 'TITULO like *' + EBusTitulo.Text + '*';
Tienes que usar el operador "Like" para poder comparar cadenas intermedias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas