Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > PostgreSQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-02-2013
willwallace willwallace is offline
Miembro
NULL
 
Registrado: feb 2013
Posts: 10
Poder: 0
willwallace Va por buen camino
Manipulacion de datos tipo time en Delphi y postgres

Estimados amigos soy nuevo en esto y tengo el siguiente problema: quiero almacenar datos tipo time en una BdD postgres desde delphi(con la finalidad de manipularlos y realizar calculos), para lo cual emplee la siguiente funcion

DELPHI(Ejecucion Boton)

dm.hora.Close();
dm.hora.Parameters.Items[1].Value:=mehinicio.Text; //mehinicio= maskedit
dm.hora.Prepared;
dm.hora.ExecProc();


POSTGRES(funcion que enlaza con dm.hora)

CREATE OR REPLACE FUNCTION newhora1(horaf time without time zone)
RETURNS integer AS
$BODY$
declare

begin
insert into hora1 values (horaf);
return 1;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION newhora1(time without time zone) OWNER TO postgres;


al ejecutarlo me da como resultado 'ERROR: no existe la funcion newhora1(date); Error while executing the query '.

Por favor solicito cualquier apoyo. deseo guardar el registro de horas en formato time y no character, ya que todos los calculos los preciso realizar en postgres
Responder Con Cita
  #2  
Antiguo 14-02-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración

Recuerda poner los tags al código fuente, ejemplo:



Gracias


No sé exactamente como trabaja postgresql los campos de fecha y hora, aunque lo normal es que sea un número (double), por lo que puedes hacer cálculos con ellos normalmente.
A ver si algún compañero te lo puede confirmar, aunque no estaría de más que echaras un vistazo a la documentación de postgresql.
En el caso de firebird, que es el que mejor conozco, los campos fechahora se guardan así: (ejemplo): 34354,5689742458 donde la parte entera son los días transcurridos desde el 31/12/1890 y la parte decimal son las horas. Los campos fecha no guardan la parte decimal (34354) y los campos hora guardan la parte decimal (0,5689742458)
Responder Con Cita
  #3  
Antiguo 14-02-2013
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Hola,

Ahorita desconozco si el resultado sería igual o no pero modificaría la forma de llamar la función desde el código, enviando el parámetro en el valor ya establecido como fecha

Código Delphi [-]
dm.hora.Close();
dm.hora.Parameters.Items[1].AsDateTime:= StrToDate(mehinicio.Text); //mehinicio= maskedit
dm.hora.Prepared;
dm.hora.ExecProc();

Pero... el error que estás obteniendo es:
Cita:
al ejecutarlo me da como resultado 'ERROR: no existe la funcion newhora1(date); Error while executing the query '.
Y eso no tiene nada que ver con el manejo del campo de tiempo.

Verifica que estás llamando la función correctamente desde delphi. recuerda que si está en un esquema diferente a public, deberás llamarla con el nombre del esquema ej: miesquema.funcion()

Antes de hacerlo en tiempo de ejecución, podrías probar con una query en tiempo de diseño y abrirla para probar que esté ejecutando correctamente la sentencia
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #4  
Antiguo 14-02-2013
willwallace willwallace is offline
Miembro
NULL
 
Registrado: feb 2013
Posts: 10
Poder: 0
willwallace Va por buen camino
Unhappy

De antemano gracias por la ayuda q me brindan

Estimados amigos: investigando un poco cambie el MaskEdit por TDateTimePicker configurado previamente de la siguiente forma con

TDateTimePicker.Format:='HH:mm:ss';
y TDateTimePicker.Kind:=dtkTime;

DELPHI(Ejecucion Boton)

showMessage( timetostr(hinicio.Time) );
dm.hora.Close();
dm.hora.Parameters.Items[1].Value:=hinicio.Time; //hinicio=TDateTimePicker
dm.hora.Prepared;
dm.hora.ExecProc();

, ahora no me sale error y registra en postgres, pero en lugar de registrar la hora q muestra el TDateTimePicker registra un valor de ceros ejemplo: 08:49:25 registra solo valores 00:00:00

No se si estoy obviando alguna opcion, Gracias.
Responder Con Cita
  #5  
Antiguo 14-02-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Parece que no has leido mis indicaciones anteriores
Responder Con Cita
  #6  
Antiguo 14-02-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.609
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por willwallace Ver Mensaje
[...] Gracias.
Gracias a ti por darle formato al código, ya que así se comprende mejor.

Es muy sencillo. Mira, un compañero se lo explica a otro colega aquí.
Responder Con Cita
  #7  
Antiguo 17-02-2013
willwallace willwallace is offline
Miembro
NULL
 
Registrado: feb 2013
Posts: 10
Poder: 0
willwallace Va por buen camino
Buenos dias. Queria que me dieras una manito, ahora no me sale error y registra en postgres, pero en lugar de registrar la hora q muestra el TDateTimePicker registra un valor de ceros ejemplo: 08:49:25 registra solo valores 00:00:00

No se si estoy obviando alguna opcion, Gracias.
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
diferencia entre datos tipo time gonza_619 Varios 1 25-08-2010 02:13:46
Componente en Delphi 2006 para importar datos de excel a postgres saul_fg PostgreSQL 0 01-04-2009 19:49:56
Calculos con tipo Time Cañones SQL 1 25-04-2007 20:29:11
Manipulacion De Datos En Bd hebert ordonez Firebird e Interbase 3 22-05-2004 11:01:44
Tipo de datos time en oracle rinaib Oracle 5 11-08-2003 22:14:45


La franja horaria es GMT +2. Ahora son las 01:09:30.


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