Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   pregunta sobre Filtros (https://www.clubdelphi.com/foros/showthread.php?t=13521)

Shion 21-08-2004 09:11:25

pregunta sobre Filtros
 
Un saludo para todos.

Quisiera saber como puedo hacer para hacer filtros del tipo:

'*texto*'

* = comodin (que se usa para decir que no importa lo que haya ahi)
texto = a las letras que doy cuando quiero filtrar en un tabla.

he intentado de esa forma y no me filtra nada.

Pues si alguno de uds. pudiera de alguna forma ayudarme le estaria agradecido.

PD. funciona bien cuando le doy de esta forma 'texto*'

moesis 22-08-2004 03:09:11

Saludos,

En primer lugar deberías de decirnos que sistema de base de datos utilizas, pues dependiendo de cada uno de ellos es el formato.

En SQL (Interbase, MySQL, MS SQL Server, ...) sería algo así como
Código SQL [-]
SELECT * FROM tabla WHERE campo LIKE '%valor%';
En BDE basandote en SQL.
Código SQL [-]
SELECT * FROM tabla WHERE campo LIKE '*valor*';
En BDE basandote en los métodos de TTabla y TDataSet

Código Delphi [-]
Tabla.Filtered := false; Tabla.Filter := 'Campo like ' + QuotedStr ('*Campo*'); Tabla.Filtered := true;

Esperando haberte aclarado algo más....

Shion 23-08-2004 03:49:53

gracias por responder.
___________________

Estoy usando una tabla paradox , con delphi 7

he probado con el uso de "like", pero al parecer "table.filter" no tiene soporte para esto pues buscando en la ayuda de delphi solo me sale esto:

Operator Meaning
< Less than
> Greater than
>= Greater than or equal to
<= Less than or equal to
= Equal to
<> Not equal to
AND Tests two statements are both True
NOT Tests that the following statement is not True
OR Tests that at least one of two statements is True
+ Adds numbers, concatenates strings, adds numbers to date/time values (only available for some drivers)
- Subtracts numbers, subtracts dates, or subtracts a number from a date (only available for some drivers)
* Multiplies two numbers (only available for some drivers)
/ Divides two numbers (only available for some drivers)
* wildcard for partial comparisons (FilterOptions must include foPartialCompare)



vic_ia 23-08-2004 18:59:22

hola...

se me ocurre que lo mejor para realizar un filtro como lo que tu tienes lo mejor es usar el evento OnFilter del DataSet que utilices,... de esta forma tu puedes dar las condiciones bajo las cuales deseas que el registro sea parte de los que devuelve el filtro o no...

saludos...

Shion 23-08-2004 20:00:24

mediante el evento onfilter lo habia probado y funciona bien,

solo que lei por alguna parte que no es recomendable usar esto, por que este tipo de filtro se aplica en el cliente por lo cual deben bajarse por la red incluso los registros que no satisfagan el filtro.

no habra otra manera de hacer ese filtro?:confused:

roman 23-08-2004 20:26:28

Cita:

Empezado por Shion
solo que lei por alguna parte que no es recomendable usar esto, por que este tipo de filtro se aplica en el cliente por lo cual deben bajarse por la red incluso los registros que no satisfagan el filtro.

Y lo mismo sucederá con la propiedad Filter. Precisamente por esto lo más recomendable es lo que moesis te comentó desde un principio: usa consultas SQL. Así el filtro se aplica en el servidor y sólo mandará los registros que satisfagan la condición.

// Saludos

roman 23-08-2004 22:58:23

Prueba enlazar el TQuery al alias mediante una componente Database y a ésta ponle su propiedad LoginPrompt = false.

// Saludos

Shion 25-08-2004 01:15:12

Gracias a todos, ya me funciono todo bien,
gracias por sus consejos.

Saludos


La franja horaria es GMT +2. Ahora son las 14:32:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi