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 20-04-2009
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 18
Kenobi Va por buen camino
Problema con fechas Tdate

Tenngo un aplicacion en la cual utilizo sql para consultar rangos de pedidos entre fechas, ahora bien para esto generalmente uso tmsdatePicker el cual me devuelve la fecha seleccionada en su propiedad date...

Bien aparte de eso dentro de la misma aplicacion manejo un array de Tdate llamado arregloDias en el cual dada una fecha cualquiera guardo las fechas de toda la semana cosa de poder manejar esos valores facilmente,

tengo un procedimiento que llama a una consulta con paramentros (los cuales paso como parametros) ...algo asi

Código Delphi [-]
procedure consultar(Inicio,Fin:Tdate);
Begin
    Consulta.Close;
    consulta.Params.ParamValues['ValDesde']:=Desde;
    consulta.Params.ParamValues['ValHasta']:=Hasta;
    consulta.Open;
End;

ahora bien todo funciona cuando paso los valores de los paramentros desde un timepicker no asi cuando los paso como los elementos del arreglo ejemplo

Código Delphi [-]
//llamada a procedimiento 
Consultar_SolicitudAreas(DatePicker1.Date,DatePicker2.Date);

no funciona si lo llamo asi ....

Código Delphi [-]
Consulta(ArregloDias[1],ArregloDias[7]);

algo curioso solo funciona si en la declaracion del procedure los paramentros son del tipo variant , asi mismo en la declaracion del arrayDias

Código Delphi [-]
procedure consultar(Inicio,Fin:Variant);
ArrayDias =Array[1..7] of Variant;

la verdad asi ya funciona pero no me convence porque no se bien que es lo que pasa ....

me gustaria que alguien me lo aclare antes de continuar arrastrando un error que despues me cueste caro ...

Gracias ...
Responder Con Cita
  #2  
Antiguo 20-04-2009
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Proba

Código Delphi [-]
 
uses ...., DateUtils;
procedure consultar(Desde,Hasta:Tdate);
Begin    Consulta.Close;
    consulta.Params.ParamByName['ValDesde']:=Desde;
    consulta.Params.ParamByName['ValHasta']:=IncDays(Hasta,1);
    consulta.Open;
End;

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #3  
Antiguo 20-04-2009
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 18
Kenobi Va por buen camino
Pues la cosa seria...porque

Porque debo colocar el array de tipo variant y no de tipo tdate para que funcione ...eso no me cuadra digo es una simple consulta con parametros que se los paso y ya ....


ahora bien en el debbuger cuando audito los valores de los parametros si se los paso como array de tipo tdate sale un entero y si es desde variant una fecha delimitada con comillas simples ....

Gracias por su atencion .....
Responder Con Cita
  #4  
Antiguo 21-04-2009
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Es que la fecha en si, es un numero. Si vos usas TDate, solo esta la fecha, y no la hora. Seguramente el campo debe ser TDateTime. He ahi tu problema. Porque las sentencias funcionan perfectamente.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #5  
Antiguo 21-04-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Lightbulb

Cita:
Empezado por Kenobi Ver Mensaje
Porque debo colocar el array de tipo variant y no de tipo tdate para que funcione ...eso no me cuadra digo es una simple consulta con parametros que se los paso y ya ....
Quisas por lo que estas trabajando como tipo variant al hacer esto:
Código Delphi [-]
consulta.Params.ParamValues['ValDesde']:=Desde;//aqui estas asignando u TDate a un Variant
lo mejor es hacerlo asi:
Código Delphi [-]
consulta.Params.ParamByName('ValDesde').AsDate:=Desde;//Aqui pasas un TDate a otro TDate.
Pruebalo...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 21-04-2009 a las 21:49:17.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Reiniciar variable TDate... JoysticK Varios 7 14-09-2008 03:37:59
Tdate time!!!!!!!!!!!!!!! alixp23 C++ Builder 1 13-04-2007 06:57:32
Partes de TDate beatriz g Varios 1 04-09-2006 19:57:22
Problema con el TDate. alfredosg19 OOP 8 15-03-2005 13:05:30
Tdate sin decimales MITOPE Varios 2 18-03-2004 20:52:49


La franja horaria es GMT +2. Ahora son las 07:30:06.


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