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 19-12-2005
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 20
Nbull Va por buen camino
Question Hora en un dbgrid

Hola A tod@s, estoy trabajando con access, delphi7 y componentes Ado, tengo un dbgrid enlazado a traves de un Adoquery con consulta sql a un campo llamado [Hora].

El problema que tengo es que me muestra una fecha y seguido la hora que guarde cuando entro el usuario y yo solo quiero que me muestre la hora.

He buscado por los foros y no he encontrado nada. No se si alguien me podra echar una mano.

Un saludo y gracias.
Responder Con Cita
  #2  
Antiguo 19-12-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Busca la propiedad DisplayFormat del campo y establece el formato que deseas desplegar 'hh:mm:ss'. No lo he probado, solo supongo que funcionara
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 19-12-2005
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
En el diseño de tu tabla de Access debes asignar el formato que desees, por ejemplo: "Hora corta", al campo Fecha/Hora, y eso bastará para que se muestre correctamente en Delphi.

Saludos.
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #4  
Antiguo 19-12-2005
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 20
Nbull Va por buen camino
Hola Vtdeleon no encuentro la Propiedad DisplayFormat del Dataset tengo el siguiente Código:

Código Delphi [-]
DataSAccesos.DataSet.Fields[1].dispalyFormat:='hh:nn:ss';
Me dice que identificador sin declarar.¿Me puedes decir como llamas tu a esa propiedad?

Gracias.
Responder Con Cita
  #5  
Antiguo 19-12-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Esa propiedad se consigue mediante el Editor de campo (Fields Editor) del dataset. Agregas los campos que tiene la tabla, seleccionas el campo, de inmediato aparece la propiedad en el Object Inspector.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #6  
Antiguo 20-12-2005
ronalg ronalg is offline
Miembro
 
Registrado: may 2003
Ubicación: Sucre - Bolivia
Posts: 68
Poder: 21
ronalg Va por buen camino
Espero te Sirva

Código Delphi [-]
uses DateUtils;
Campo:=Timeof(Valor);

Campo puede ser cualquier TDateTime o TTime sea nativo de delphi o de la base de datos

Valor puede ser también TDateTime, TTime o TDate sea nativo d dlephi o de la base de datos

existe tambien un dateof( )
__________________
Saludos desde Sucre - Bolivia
"Si te lo puedes imaginar lo
puedes resolver" Pyriel

Última edición por ronalg fecha: 20-12-2005 a las 16:26:11.
Responder Con Cita
  #7  
Antiguo 21-12-2005
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 20
Nbull Va por buen camino
Gracias a los dos por responderme, en primer lugar he mirado lo que me dijiste Vtdeleon y sigo sin encontrar esa propiedad en el object inspector, debo ser un zoquete por que le he dado mil vueltas y no lo encuentro¿Esta dentro de las propiedades del adoquery o del Dbgrid?


Ronalg, no se a que te refieres cuando dices

Cita:
uses DateUtils;Campo:=Timeof(Valor);
¿Que propiedad del campo modificas?
¿A que te refieres con valor?

Gracias de nuevo a los dos un saludo.
Responder Con Cita
  #8  
Antiguo 22-12-2005
ronalg ronalg is offline
Miembro
 
Registrado: may 2003
Ubicación: Sucre - Bolivia
Posts: 68
Poder: 21
ronalg Va por buen camino
Lo siento supuse

Supongo que para meter datos al campo del tipo DATE haces algo asi:

Código Delphi [-]
table.insert;
table.fieldbyname('hora').value:=Now;
o
table.fieldbyname('hora').value:=date();
o
table.fieldbyname('hora').value:=today();
o
table.fieldbyname('hora').value:=time;
o
//si estas usando un componente calendario
table.fieldbyname('hora').value:=calendario.date;
.
.
.
.
.
table.post

todos estos (now, date(), today(), time) contiene valores del tipo TDateTime que esta definido asi:

Código Delphi [-]
type TDateTime = type Double;

Cita:
Description

Most VCL objects represent date and time values using the TDateTime type. The integral part of a TDateTime value is the number of days that have passed since 12/30/1899. The fractional part of a TDateTime value is fraction of a 24 hour day that has elapsed.

Following are some examples of TDateTime values and their corresponding dates and times:

0 12/30/1899 12:00 am
2.75 1/1/1900 6:00 pm
-1.25 12/29/1899 6:00 am
35065 1/1/1996 12:00 am
To find the fractional number of days between two dates, simply subtract the two values, unless one of the TDateTime values is negative. Similarly, to increment a date and time value by a certain fractional number of days, add the fractional number to the date and time value if the TDateTime value is positive.
When working with negative TDateTime values, computations must handle time portion separately. The fractional part reflects the fraction of a 24-hour day without regard to the sign of the TDateTime value. For example, 6:00 am on 12/29/1899 is –1.25, not –1 + 0.25, which would be –0.75. There are no TDateTime values between –1 and 0.
osea que contiene si o si la fecha y la hora siempre.

para sacar solo la hora sin la fecha debes hacer uso de DATEOF y para sacar solo la hora de TIMEOF, estas funciones estan en la unidad "DateUtils" que debes ponerla a mano en el USES de tu unidad.

Código Delphi [-]
table.insert;
table.fieldbyname('hora').value:=timeof(Now);
o
table.fieldbyname('hora').value:=timeof(date());
o
table.fieldbyname('hora').value:=timeof(today());
o
table.fieldbyname('hora').value:=timeof(time);
.
.
.
.
table.post

Esto extraera solo la hora.

espero te sirva
__________________
Saludos desde Sucre - Bolivia
"Si te lo puedes imaginar lo
puedes resolver" Pyriel

Última edición por ronalg fecha: 22-12-2005 a las 01:17:03.
Responder Con Cita
  #9  
Antiguo 22-12-2005
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Hola

Disculpa mi insistencia pero, ya probaste la recomendación que te di de:

Cita:
Empezado por yusnerqui
En el diseño de tu tabla de Access debes asignar el formato que desees, por ejemplo: "Hora corta", al campo Fecha/Hora, y eso bastará para que se muestre correctamente en Delphi.
eso a mi me funciona perfectamente, a ti no??

Saludos
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #10  
Antiguo 23-12-2005
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 20
Nbull Va por buen camino
Cita:
Empezado por yusnerqui
Hola

Disculpa mi insistencia pero, ya probaste la recomendación que te di de:

eso a mi me funciona perfectamente, a ti no??
Yunerqui no se por que pero a mi no me funciona, el campo Hora de mi base de datos es del tipo Fecha/Hora y como mascara Hora Corta.

Cita:
Empezado por ronalg
Supongo que para meter datos al campo del tipo DATE haces algo asi:
Ronalg, no lo hago asi, dado que trabajo con componentes AdoQuery, y hago consultas del tipo SELECT * FROM....

Gracias a los dos por intentar ayudarme, seguire investigando, si hay alguien que pueda hecharme una mano le estare muy agradecido.

Un saludo y gracias de nuevo.
Responder Con Cita
  #11  
Antiguo 16-01-2006
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Mejor tarde que nunca

Creo que me tardé un poco para esta respuesta, quezás ya encontraste la solución, pero de cualquier manera será útil para futuros usuarios con el mismo problema.

Tu me dices que:

Cita:
el campo Hora de mi base de datos es del tipo Fecha/Hora y como mascara Hora Corta
Pero yo no te hablo de máscara sino de FORMATO, pon el formato a hora corta y después nos cuentas.

Saludos Yusnerqui
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo


Última edición por yusnerqui fecha: 16-01-2006 a las 17:00:52.
Responder Con Cita
  #12  
Antiguo 16-01-2006
Fernando Fernando is offline
Miembro
 
Registrado: ago 2003
Posts: 77
Poder: 21
Fernando Va por buen camino
Hola Delphimaniacos:

(adoquery1.fieldbyname('fecha') AS TDateTimeField).DisplayFormat:= 'hh:nn:ss'

Saludos.
Responder Con Cita
  #13  
Antiguo 16-01-2006
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 20
Nbull Va por buen camino
Hola Yusnerqui y Fernando ( por cierto, Tocayo mio ),me funcionó la solución de Fernando.Muchisimas gracias a los dos.

Un saludo.
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 18:48:15.


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