Filtro con paréntesis
He estado tratando de filtrar los datos de una adoquery. Tengo que contar la cantidad de trabajadores a los que se les dió de alta antes de un día especifico y todavía no se les ha dado de baja o se le dio de baja un día posterior al día indicado. Y esto tengo que repetirlo para todos los días de un mes.
Tengo una variable fecha:string; donde está, en cada paso del ciclo, la fecha por la que tengo que filtrar, llevada a string. El filtro sería más o menos: adoquery1.filter:='fechaA < ' + fecha + ' and ( fechaB = Null or fechaB > ' + fecha + ' )'; Pero no funciona. Si lo pongo en el where sí funciona pero se demora un siglo porque tengo que cerrar y abrir la tabla cada vez. Lo curioso es que el paréntesis en cualquier otra posición sí funciona, y sin paréntesis también. Concretamente, si lo que está dentro del paréntesis es un 'and' sí funciona, pero si es un 'or' no. Debe haber algo que no sé y que explique este misterio y de paso me de una pista de cómo resolver el problema. :confused: |
Bueno, para empezar, la fecha tiene que ir entrecomillada
QuotedStr(Fecha) y luego, el formato de la fecha ha de ser el correcto dd/mm/yyyy aunque seguramente será mm/dd/yyyy Espero te sirva |
No cadetill, creo que no me sirve. Es que sin paréntesis funciona, por eso pienso que no es cuesíón de comillas ni del formato de la fecha.
De todos modos voy a probar.:( |
Hola
Desconozco si en objetos ADO existe pero has probado a en vez de cargar la propiedad Filter hacerlo en el evento OnFilterRecord pasandole como parámetros en variables globales las Fechas que quieres consultar. Saludos |
La franja horaria es GMT +2. Ahora son las 17:09:19. |
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