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)
-   -   problema con prop. filter en un adoQuery (https://www.clubdelphi.com/foros/showthread.php?t=60763)

pablopessoa 13-10-2008 19:23:27

problema con prop. filter en un adoQuery
 
Hola a todos!! tengo un problema usando un AdoQuery y queria comentarlo a ver si me podian ayudar.
Mi usuario introduce mediante un formulario que tiene checkbox los parametros por los que se va a filtrar la tabla, por ejemplo, si el hace click en el checkbox "Telefono" se van a buscar casas que tengan telefono. pero el problema es que tengo que "anidar" condiciones en el filter, y cuando quiero anidarlos me sale un error que dice que los argumentos estan fuera de rango o en conflicto con otros. les posteo el codigo a ver si estoy haciendo algo mal.

Código Delphi [-]
filtrado:='';
    if chgarage.Checked then
        filtrado:=filtrado + '(IdTGarage = 6)';
    if Chtelefono.Checked then
        filtrado:=filtrado + '(Telefono = false)';
    ShowMessage(filtrado);
    with DataModule1 do
    begin
        casas.Active:=False;
        casas.Filtered:=False;
        casas.Filter:=filtrado;
        casas.Filtered:=True;
        casas.Active:=True;
        DBGrid1.DataSource:=DSCasas;
    end;

Muchas Gracias!!

luisgutierrezb 13-10-2008 19:35:04

porque te falta el "AND" en la condicion, si anidas te quedaria algo asi como:
'(IdTGarage = 6)(Telefono = false)'

y debe quedaro algo como:
'(IdTGarage = 6) and (Telefono = false)'

Caro 13-10-2008 20:13:42

Hola, como te dice luisgutierrezb te falta el AND, tu condición mas o menos quedaría asi.

Código Delphi [-]
  filtrado:='';
  banderita := False; 
  if chgarage.Checked then
   begin  
    filtrado := '(IdTGarage = 6)';
    banderita := True;
   end;
  if Chtelefono.Checked then
   if banderita then
     filtrado:=filtrado + ' AND (Telefono = false)'
   else
     filtrado:=filtrado + '(Telefono = false)';
 
  ..................
  ..................

Saluditos


La franja horaria es GMT +2. Ahora son las 22:25:43.

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