Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-12-2005
serhasae serhasae is offline
Miembro
 
Registrado: jun 2004
Ubicación: España
Posts: 117
Poder: 20
serhasae Va por buen camino
Problema consulta con fechas ...

Estoy utilizando bases de datos paradox y al intentar hacer una consulta no se porque se me ralla.
Declaro f1 que es un string que almacena una fecha en este caso
'31/12/2005'. Compruebo que lo almacena bien este valor y esto esta en un bucle pero los valores de numeroficha, van corriendo correctamente.

y ahi va mi consulta

dm.qhorario.active:=False;

dm.qhorario.sql.add('Select * from horario');
dm.qhorario.sql.add('where nficha='+dm.tfichanficha.asstring);
dm.qhorario.sql.add('and f_ini_horario<=:e');


dm.qhorario.parambyname('e').asdate:=strtodate(f1);


Cambio f1 por 31/12/2005 y si me toma los registros del mes de diciembre, sino los salta, tengo uno que pone 29/12/2005 y me lo salta. He comprobado que el error es que no lo convierte bien f1 a date. ¿ la consulta deberia haberla echo de otra manera?. F_ini_horario es de tipo date. F1 es de tipo string. Saludos y gracias por ayudarme.
Responder Con Cita
  #2  
Antiguo 29-12-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por serhasae
He comprobado que el error es que no lo convierte bien f1 a date. ¿ la consulta deberia haberla echo de otra manera?. F_ini_horario es de tipo date. F1 es de tipo string. Saludos y gracias por ayudarme.
¿En qué te basas para afirmar eso? ¿Con qué fechas has probado?

¿no puedes usar un TdateTimePicker para pasar la fecha directamente de un calendario?

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 29-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por serhasae
Declaro f1 que es un string que almacena una fecha en este caso '31/12/2005'.
Para mi esto es un error mas que común.... ¿Porque declarar un String para guardar una fecha teniendo un tipo de dato específico?


Cita:
Empezado por serhasae
Código Delphi [-]
dm.qhorario.sql.add('where nficha='+dm.tfichanficha.asstring);
dm.qhorario.sql.add('and f_ini_horario<=:e');
 
 
dm.qhorario.parambyname('e').asdate:=strtodate(f1);
¿Porqué no pasas los dos valores (nficha y f_ini_horario) como parámetros?
¿Que pasa si ejecutas una consulta similar desde la consola de la base de datos?

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 29-12-2005
serhasae serhasae is offline
Miembro
 
Registrado: jun 2004
Ubicación: España
Posts: 117
Poder: 20
serhasae Va por buen camino
Era por ahorrarme la variable delphi, es que son fechas y como las manipulo cogo por ejemplo solo los dias o los meses, me es mas facil utilizarlos como caracteres que utilizando funciones para decodificar la fecha. Gracias ya lo arregle, asignandolo a una variable. Gracias y Saludos.
Responder Con Cita
  #5  
Antiguo 29-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por serhasae
...como las manipulo cogo por ejemplo solo los dias o los meses, me es mas facil utilizarlos como caracteres que utilizando funciones para decodificar la fecha.
Pues yo te diría todo lo contrario, si conoces las funciones adecuadas es mucho mas sencillo trabajar con fechas cuando son del tipo correcto. Ademas es mucho menos costoso para el procesador y la memoria!
Insisto que es un mal hábito muy común, heredado de conceptos viejos de programación.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 24-01-2006
Fernando Fernando is offline
Miembro
 
Registrado: ago 2003
Posts: 77
Poder: 21
Fernando Va por buen camino
dm.qhorario.parambyname('e').VALUE:= f1;

Salu2.
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 00:19:05.


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