Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-06-2018
the walrus the walrus is offline
Miembro
 
Registrado: Apr 2018
Posts: 58
Poder: 1
the walrus Va por buen camino
filtrar rango de fechas con dos DateTimePicker

hola estoy intentando filtrar un rango de fechas desde dos DateTimePicker y un botón y el resultado me lo muestre en una grilla.
tengo un pequeño progreso pero me da error
Código Delphi [-]
 query.clear;
              query.SQL.ADD(select * from compañia1 where fechavencimiento1 between : '2018-06-01' and '2018-06-15' order by fechavencimiento1);
              query.parambyname('01-04-2018').AsDateTime := DateTimePicker1.date; 
              query..parambyname('15-04-2018').AsDateTime := DateTimePicker2.date;
              query.open;

en la segunda linea quisiera que se muestre una consulta asi
Código SQL [-]
 select * from compoañia1 where fechavencimiento1 between '2018-06-01' and '2018-06-15' 
union all
select * from compañia2 where fechavencimiento2 between '2018-06-01' and '2018-06-15' 
union all 
select  * from compañia3 where fechavencimiento3 between '2018-06-01' and '2018-06-15' order by fechavencimento3
espero que me puedan ayudar y entender gracias
Responder Con Cita
  #2  
Antiguo 20-06-2018
Luis F. Orjuela Luis F. Orjuela is offline
Miembro
 
Registrado: May 2003
Ubicación: Bogotá - Colombia
Posts: 62
Poder: 16
Luis F. Orjuela Va por buen camino
Bueno, primero que todo, tienes mal creada la instruccion SQL con paso de parámetros.....

Debería ser así:

Código Delphi [-]
              query.clear;
              query.SQL.ADD(select * from compañia1 where fechavencimiento1 between :FECHA_INI and :FECHA_FIN order by fechavencimiento1);
              query.parambyname('FECHA_INI').AsDate := DateTimePicker1.date; 
              query.parambyname('FECHA_FIN').AsDate := DateTimePicker2.date;
              query.open;

Una vez arregles esto, pues ya tendrás la respuesta para la segunda línea....
__________________
Ing. LUIS FERNANDO ORJUELA
BOGOTA - COLOMBIA
Responder Con Cita
  #3  
Antiguo 20-06-2018
the walrus the walrus is offline
Miembro
 
Registrado: Apr 2018
Posts: 58
Poder: 1
the walrus Va por buen camino
disculpa en la parte de fecha_ini tengo que poner la fecha que deseo mostrar o el campo que tengo en mi base de datos
Responder Con Cita
  #4  
Antiguo 20-06-2018
the walrus the walrus is offline
Miembro
 
Registrado: Apr 2018
Posts: 58
Poder: 1
the walrus Va por buen camino
Cita:
Empezado por Luis F. Orjuela Ver Mensaje
Bueno, primero que todo, tienes mal creada la instruccion SQL con paso de parámetros.....

Debería ser así:

Código Delphi [-]
              query.clear;
              query.SQL.ADD(select * from compañia1 where fechavencimiento1 between :FECHA_INI and :FECHA_FIN order by fechavencimiento1);
              query.parambyname('FECHA_INI').AsDate := DateTimePicker1.date; 
              query.parambyname('FECHA_FIN').AsDate := DateTimePicker2.date;
              query.open;

Una vez arregles esto, pues ya tendrás la respuesta para la segunda línea....
me da error
dataset not edit or insert mode
Responder Con Cita
  #5  
Antiguo 21-06-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: Dec 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.114
Poder: 30
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por the walrus Ver Mensaje
me da error
dataset not edit or insert mode
Pero ese error no puede ser provocado por el código SQL que te sugirió Luis F. Orjuela, que por otro lado tiene una lógica y sintáxis correcta.

El error que mencionas no se produce cuando ejecutas una consulta SQL, sino cuando actualizas o insertas datos.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 21-06-2018
the walrus the walrus is offline
Miembro
 
Registrado: Apr 2018
Posts: 58
Poder: 1
the walrus Va por buen camino
puede solucionar el error anterior, pero ahora me dice que la consulta que le envió como parámetro no funciona
Responder Con Cita
  #7  
Antiguo 21-06-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: Dec 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.114
Poder: 30
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

¿ Podrías poner textualmente (copiar/pegar) el mensaje de error que te muestra ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 21-06-2018
the walrus the walrus is offline
Miembro
 
Registrado: Apr 2018
Posts: 58
Poder: 1
the walrus Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

¿ Podrías poner textualmente (copiar/pegar) el mensaje de error que te muestra ?

Saludos
toque un poco el código y ahora me dice que el parámetro de la fecha no funciona
este
Código Delphi [-]
 query.ParamByName('01-06-2018').AsDate :=  DateTimePicker1.date;
Responder Con Cita
  #9  
Antiguo 21-06-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: Dec 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.114
Poder: 30
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

A ver si circunscribimos un poco mas el problema...,
  • ¿ Con que DBMS estas trabajando ?
  • ¿ Mediante que componentes te conectas a la DB desde Delphi ?
  • ¿ Que mensaje de error te muestra ? (textualmente)

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 21-06-2018
the walrus the walrus is offline
Miembro
 
Registrado: Apr 2018
Posts: 58
Poder: 1
the walrus Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola de nuevo.

A ver si circunscribimos un poco mas el problema...,
  • ¿ Con que DBMS estas trabajando ?
  • ¿ Mediante que componentes te conectas a la DB desde Delphi ?
  • ¿ Que mensaje de error te muestra ? (textualmente)

Saludos
como gestor de base de datos uso MYSQL workwench
los componentes que utilizo es MYDAC y me conecto con el componente TMYconnection
y el error que aparce es este "parametren 01-06-208 not found "

saludos
Responder Con Cita
  #11  
Antiguo 21-06-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.576
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por the walrus Ver Mensaje
y el error que aparce es este "parametren 01-06-208 not found "
No es una fecha correcta.
Responder Con Cita
  #12  
Antiguo 21-06-2018
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: Oct 2010
Ubicación: Lima - Peru
Posts: 285
Poder: 8
Caminante Va camino a la fama
Hola

El compañero the walrus pone este codigo:

Código Delphi [-]
query.parambyname('FECHA_INI').AsDate := DateTimePicker1.date;

El parametro se llama "FECHA_INI"

Pero tu lo pones asi:

Código Delphi [-]
query.ParamByName('01-06-2018').AsDate :=  DateTimePicker1.date;

Porque poner una fecha como el nombre del parametro???

Creo q tienes un problema de concepto ahi.

Veras que analizando detenidamente el codigo q te pusieron lo resuelves

Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #13  
Antiguo 21-06-2018
the walrus the walrus is offline
Miembro
 
Registrado: Apr 2018
Posts: 58
Poder: 1
the walrus Va por buen camino
cambie los parametros pero ahora me dice que la 'fecha_fin' no funciona





.

Última edición por Casimiro Notevi fecha: 21-06-2018 a las 19:06:12.
Responder Con Cita
  #14  
Antiguo 21-06-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.576
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Difícil ayudarte si no copias y pegas tu código, y das explicaciones claras.
Responder Con Cita
  #15  
Antiguo 21-06-2018
the walrus the walrus is offline
Miembro
 
Registrado: Apr 2018
Posts: 58
Poder: 1
the walrus Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Difícil ayudarte si no copias y pegas tu código, y das explicaciones claras.
Código SQL [-]
 query.SQL.Clear;
query.Close;
query.SQL.add ('select * from compañia  where fechavencimiento1 between  :FECHA_INI and : FECHA_FIN ');
query.query.parambyname('FECHA_INI').AsDate := DateTimePicker1.date; 
query.parambyname('FECHA_FIN').AsDate := DateTimePicker2.date;
 query.open;

ese es mi codigo, el error me da en la FECHA_FIN

Última edición por the walrus fecha: 21-06-2018 a las 19:36:19.
Responder Con Cita
  #16  
Antiguo 21-06-2018
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: Oct 2010
Ubicación: Lima - Peru
Posts: 285
Poder: 8
Caminante Va camino a la fama
Cita:
Empezado por the walrus Ver Mensaje
Código SQL [-] query.SQL.Clear; query.Close; query.SQL.add ('select * from compañia where fechavencimiento1 between :FECHA_INI and : FECHA_FIN '); query.query.parambyname('FECHA_INI').AsDate := DateTimePicker1.date; query.parambyname('FECHA_FIN').AsDate := DateTimePicker2.date; query.open;


ese es mi codigo, el error me da en la FECHA_FIN

Podria ser por ese espacio entre los dos puntos y FECHA_FIN?? Solo estoy adivinando, porque no deberia fallar...
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #17  
Antiguo 21-06-2018
the walrus the walrus is offline
Miembro
 
Registrado: Apr 2018
Posts: 58
Poder: 1
the walrus Va por buen camino
Cita:
Empezado por Caminante Ver Mensaje
Podria ser por ese espacio entre los dos puntos y FECHA_FIN?? Solo estoy adivinando, porque no deberia fallar...
soluciones ese error pero cuando quiero filtrar una fecha no no se aplica ningún cambio
mi codigo
Código Delphi [-]
   Query1.SQL.Text:= 'Select * from compañia1 where compañia.fechadevencimiento BETWEEN :Fecha1  AND :Fecha2';
   Query1.ParamByName('Fecha1').AsDateTime := DateTimePicker1.Date;
   Query1.ParamByName('Fecha2').AsDateTime := DateTimePicker2.Date;

Última edición por the walrus fecha: 21-06-2018 a las 23:15:49.
Responder Con Cita
  #18  
Antiguo 21-06-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.576
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Pero eso es un copia-pega del código?

Código Delphi [-]
query.query.parambyname('FECHA_INI').AsDate := DateTimePicker1.date;
query.parambyname('FECHA_FIN').AsDate := DateTimePicker2.date;
Responder Con Cita
  #19  
Antiguo 21-06-2018
the walrus the walrus is offline
Miembro
 
Registrado: Apr 2018
Posts: 58
Poder: 1
the walrus Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Pero eso es un copia-pega del código?

Código Delphi [-]
query.query.parambyname('FECHA_INI').AsDate := DateTimePicker1.date;
query.parambyname('FECHA_FIN').AsDate := DateTimePicker2.date;
si vuelvo a repetir cuando selecciono una fecha que quiero mostrar los cambios no se aplican.
Responder Con Cita
  #20  
Antiguo 21-06-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.576
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Pero eso es un copia-pega del código?
Código Delphi [-]
query.query.parambyname('FECHA_INI').AsDate := DateTimePicker1.date;
query.parambyname('FECHA_FIN').AsDate := DateTimePicker2.date;
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Se puede Filtrar Fechas en dos Datetimepicker con un solo campo? feliz-58 Varios 12 28-07-2013 23:37:19
filtrar por rango Max_E. Conexión con bases de datos 2 22-11-2008 03:14:24
problemas al comparar un rango de fechas con datetimepicker robertillo Varios 3 18-04-2007 19:05:27
Filtrar por rango con Tdbf, se puede ? bitbow Tablas planas 1 03-09-2006 08:51:26
Error al filtrar una fecha entre un rango de fechas dec Trucos 0 01-07-2006 01:01:41


La franja horaria es GMT +2. Ahora son las 06:29:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi