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 07-08-2019
donpedro donpedro is offline
Miembro
 
Registrado: nov 2009
Posts: 102
Poder: 0
donpedro cantidad desconocida en este momento
Is not a Valid Date Time

Hello y bendiciones. Aqui estoy de nuevo con un nuevo error

Estoy usando Delphi 2009 y Sql Server 2012.
Tengo un modulo de registro de pacientes donde uso componentes de base de datos EJ: DBedits, DBradiogroup Etc...
El unico comoponente que no es de base de datos es el DateTimePicker y con ese componente es que tengo el error. Me explico:

En el evento BeforePost del AdoTable correspondiente a la tabla pacientes coloco el siguiente codigo:
Código Delphi [-]
procedure TFrmpacientes.TpacientesBeforePost(DataSet: TDataSet);
begin

       Dataset.FieldByName('Fecha Nacimiento').AsString:=DateToStr(DBfechanac.Date);

end;

Con ese codigo en ese evento no tengo problema. El problema esta, cuando coloco en el evento AfterScroll del AdoTable el siguiente codigo, para que cuando navegue por los registros el DateTimePicker tome la fecha que esta almacenada en la tabla pacientes.
Código Delphi [-]
procedure TFrmpacientes.TpacientesAfterScroll(DataSet: TDataSet);
begin

       DBfechanac.Date:=StrToDate(Dataset.FieldByName('Fecha Nacimiento').AsString);

end;

Entonces cuando ejecuto el programa y entro al modulo Registro de Pacientes, al hacer clic en el boton Nuevo Registro sale el error: "Is Not a Valid Date Time". He probado cambiando el campo de Fecha de Nacimiento a DATE en la base de datos y hace lo mismo.

Gracias de antemano por la ayuda brindada
Responder Con Cita
  #2  
Antiguo 07-08-2019
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Supongo que el problema está en como se da formato a la fecha al convertira a string.
  • m/d/y
  • y/m/d
  • d/m/y
  • y lo mismo, pero con la hora incluida
  • y lo mismo, pero con la hora y zona horaria incluida.

Lo correcto es trabajar con el tipo de datos sin hacer transformaciones.

Los campos de una tabla suelen tener la propiedad
  • .AsString
  • .AsDate
  • .AsDateTime
  • .AsInteger
  • .AsFloat
  • etc.

Prueba utilizado

Código Delphi [-]
Dataset.FieldByName('Fecha Nacimiento').AsDateTime := DBfechanac.Date;
y
Código Delphi [-]
DBfechanac.Date := Dataset.FieldByName('Fecha Nacimiento').AsDateTime;
Responder Con Cita
  #3  
Antiguo 07-08-2019
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.281
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por duilioisola Ver Mensaje
Lo correcto es trabajar con el tipo de datos sin hacer transformaciones.
+1

O dado que en la unit System.pas hay esto:
Código Delphi [-]
TDateTime = type Double;

Sería equivalente a usar:
Código Delphi [-]
Dataset.FieldByName('Fecha Nacimiento').AsFloat := DBfechanac.Date;
...
DBfechanac.Date := Dataset.FieldByName('Fecha Nacimiento').AsFloat;

Aunque visualmente queda más claro como ha escrito [duilioisola].
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 07-08-2019
donpedro donpedro is offline
Miembro
 
Registrado: nov 2009
Posts: 102
Poder: 0
donpedro cantidad desconocida en este momento
Solucionado

Gracias por la ayuda brindada

Lo resolvi colocando el campo FechaNacimiento en la base de datos de tipo DATETIME. Antes solo estaba en DATE.
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
Excepción: is not a valid date javicho_villa Varios 3 19-04-2018 23:25:39
Error Filtro "84X-F5-22FF is not a valid date and time" Lenny Varios 2 25-03-2011 04:32:06
dbedit con editmask, Error : is not a valid date osmar Conexión con bases de datos 4 09-02-2006 15:19:17
Obtener el time y date del server... uper Firebird e Interbase 1 11-03-2005 15:49:12
Locate a una tipo date o time RONPABLO Firebird e Interbase 6 29-11-2004 09:49:04


La franja horaria es GMT +2. Ahora son las 13:15:22.


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