Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-09-2004
Nicole Nicole is offline
Registrado
 
Registrado: sep 2004
Posts: 3
Poder: 0
Nicole Va por buen camino
Fechas en Filtros

Hola a todos.

Tengo un problema con un filtro en Delphi. Os explico. Quiero hacer un filtro de las bajas cuya fecha de inicio sea mayor que una fecha INI y cuya fecha fin sea vacía o menor que una fecha FIN. El problema es que no se como poner lo de que la fecha sea vacía. He probado con IS NULL, NULL, BLANK y no me funciona nada.

Tabla.Filter:='Fecha > #'+INI+'# AND (Fecha = NULL OR Fecha < #'+FIN+'#)';

Al activar el filtro me da un error.

Gracias.
Responder Con Cita
  #2  
Antiguo 29-09-2004
Sick boy Sick boy is offline
Miembro
 
Registrado: may 2003
Ubicación: Cantabria
Posts: 245
Poder: 22
Sick boy Va por buen camino
Hola,

Nunca he usado NULL con fechas, pero segun la ayuda de delphi FECHA=NULL deberia funcionar.

¿ Te funciona si quitas lo de fecha=null ??

Un saludo
Responder Con Cita
  #3  
Antiguo 29-09-2004
Nicole Nicole is offline
Registrado
 
Registrado: sep 2004
Posts: 3
Poder: 0
Nicole Va por buen camino
Pues si me funciona lo de FechaFin=NULL.

La consulta en la que se encuentra ese código es la siguiente, que es la que no me funciona, porque me dice "argumentos incorrectos o en conflicto con otros".
Es un problema del OR y el AND, porque si le quito a partir del AND si me funciona.

BD.Baja.Filter:='(FechaFin > #'+fechaI+'# OR FechaFin = NULL) AND FechaInicio <= #'+fechaF+'#';

Gracias.
Responder Con Cita
  #4  
Antiguo 30-09-2004
Sick boy Sick boy is offline
Miembro
 
Registrado: may 2003
Ubicación: Cantabria
Posts: 245
Poder: 22
Sick boy Va por buen camino
Prueba a poner esto:

BD.Baja.Filter:='((FechaFin > #'+fechaI+'# OR FechaFin = NULL) AND (FechaInicio <= #'+fechaF+'#))';

No lo he probado, pero creo que funcionara
Responder Con Cita
  #5  
Antiguo 30-09-2004
Nicole Nicole is offline
Registrado
 
Registrado: sep 2004
Posts: 3
Poder: 0
Nicole Va por buen camino
Tampoco me ha funcionado el filtro.

Finalmente he tenido que implementarlo con el método FilterRecord:

procedure TBD.BAJAFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
if bd.BAJAFechaInicio.Value <= fechaF then
if (bd.BAJAFechaFin.Value > fechaI) OR (bd.BAJAFechaFin.Value=0) then
accept:=true
else
accept:=false
else
accept:=false;
end;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:51:40.


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
Copyright 1996-2007 Club Delphi