Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   problema con filter (https://www.clubdelphi.com/foros/showthread.php?t=1150)

superhopi 05-06-2003 12:40:44

problema con filter
 
tengo un problemilla , a ver si me podeis ayudar:

tengo que hacer el siguiente filtro:

campo1 like %palabra% and (campo2 <> '' or campo3 <> '' )

pero me da el siguiente error:

-Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros.

Hay otra forma de hacer el filtro para que no me de el error?
He probado con parentesis, sin ellos,,, pero no me funciona, y no me gustaria hacerlo con una consulta.

Muchas gracias de antemano.

andres1569 05-06-2003 12:49:01

Hola:

Prueba esto:

Filter := 'campo1 like ' + QuotedStr(%palabra%) + ' and (campo2 <> NULL or campo3 <> NULL)';

Un saludo

superhopi 05-06-2003 13:02:05

sique saliendome el mismo error... parece ser que es por los parentesis porque esto funciona:
campo1 like %palabra% and campo2 <> '' or campo3 <> ''
pero vamos, que esto no es lo que yo quiero ^_^

marcoszorrilla 05-06-2003 13:19:54

Los Filtros no admiten Like mira este hilo:

http://www.clubdelphi.com/foros/show...t=%2Afiltro%2A

Un Saludo.

superhopi 05-06-2003 13:23:34

yo tengo filtros con like y si que me funcionan...
que raro.

andres1569 05-06-2003 13:39:49

Hola:

Depende de qué componentes, los del BDE no admiten like, sino "=palabra*", pero los ADO sí que admiten este operador.

Prueba de poner la primera expresión también entre paréntesis:

Filter := '(campo1 like ' + QuotedStr(%palabra%) + ') and (campo2 <> NULL or campo3 <> NULL)';

Un saludo

superhopi 05-06-2003 13:46:29

tampoco me va...

marcoszorrilla 05-06-2003 13:48:34

Según pruebas que acabo de realizar en Paradox solo funciona para los campos en que les pasemos como comienzan, no va ni con terminan, ni contienen.


Código:

procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Filter:='Company ='+QuotedStr(Edit1.text+'*') ;
ShowMessage(table1.Filter);
Table1.Filtered:=True;
end;

Un Saludo.

andres1569 05-06-2003 13:50:57

¿Y Así?

Filter := '(campo1 like ' + QuotedStr(%palabra%) + ') and ((campo2 <> NULL) or (campo3 <> NULL'));

superhopi 05-06-2003 13:52:45

joder, ni a la de tres ( y perdon por el taco)
tampoco me va asi,,, es por el parentesis, estoy seguro, pero para unir las dos ultimas expresiones con el or... no tengo otra opcion
snif snif ...


La franja horaria es GMT +2. Ahora son las 13:49:29.

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