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 07-09-2003
gerly gerly is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuba
Posts: 10
Poder: 0
gerly Va por buen camino
Unhappy Filtros

Hola!

Estoy tratando de filtrar los datos de una adoquery y no me deja poner los paréntesis donde los necesito.
El filtro debe ser más o menos así:

'fechaA < '+ fecha + ' and (fechaB = null or fechaB > ' +fecha);

fecha es una variable de tipo string donde voy almacenando una fecha.

El caso es que no admite los paréntesis ahí y si lo pongo sin paréntesis sí funciona, pero claro, no hace lo que necesito que haga.

Ya probé cambiando el SQL, pero tengo que cerrar y abrir la query cada vez y ese filtrado tengo que hacerlo dentro de un ciclo, por lo que se demora enormemente.

El problema es que tengo que filtrar para cada día del mes e ir contando cuántos records cumplen la condición. fechaA es la fecha de Alta y fechaB la fecha de Baja de los trabajadores. Lo que debe hacer es filtro es escoger solo los que estaban trabajando ese día.

Explico todo esto porque quizás hay otra forma de hacerlo que no sea con filtros.

saludos
Responder Con Cita
  #2  
Antiguo 08-09-2003
Avatar de DarkSide
DarkSide DarkSide is offline
Miembro
 
Registrado: jun 2003
Ubicación: La Serena - Chile
Posts: 91
Poder: 21
DarkSide Va por buen camino
Hola:
Yo no soy muy entendido en cuanto a ADOQuery, pero me parece que el codigo que escribiste:

Cita:
'fechaA < '+ fecha + ' and (fechaB = null or fechaB > ' +fecha);
tiene un problema de sintaxis, prueba de esta forma:

Código:
'fechaA < '+ fecha + ' and (fechaB = null or fechaB > ' +fecha+ ')';
__________________
De los sueños se construye la realidad...
Responder Con Cita
  #3  
Antiguo 08-09-2003
gerly gerly is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuba
Posts: 10
Poder: 0
gerly Va por buen camino
Angry

Sí es cierto que tenía un error de sintaxis, pero ese no es el problema. Eso fue a la hora de transcribirlo para acá.
Responder Con Cita
  #4  
Antiguo 08-09-2003
Bird15 Bird15 is offline
Registrado
 
Registrado: sep 2003
Posts: 6
Poder: 0
Bird15 Va por buen camino
Hola, el ado no lo manejo, pero ya probaste realizar un filtro a la tabla?, no se que base de datos usas pero di es Paradox o dbase, los campos que intervienen en la busqueda tendran que estar indexados, bueno lo que te digo es que pruebes utilizar SetRangeStar(), SetRangeEnd(), y ApplyRange, que creo que va ideal para tu caso. delphi tiene buena ayuda para eso.
ej: with table1 do begin
Fields[0].asdatetime:= pones la fecha de alta
setRangeend;
Fields[0].Asdatetime:= fecha de baja
applyrange;
end;
tambien se podria pasarlo a string, no sé .. suerte. Bird15. -
Responder Con Cita
  #5  
Antiguo 08-09-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Veamos, estas en una Query, no? pues porque no pones esas condiciones en el where de la misma?

Otra cosa, tambien podria ser que no te funcionara porque las fechas van entre comilladas

Código:
'fechaA < '+ QuotedStr(fecha) + ' and (fechaB = null or fechaB > ' + QuotedStr(fecha) + ')';
a parte de esto, tambien influye el formato de fecha. No es lo mismo que le pases un string con el formato de fecha dd/mm/yyyy (formato español) a que se lo pases como mm/dd/yyyy (formato ingles y el que reconocen la mayoria de gestores de bases de datos)

Espero te sirva
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 07:26:28.


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