Ir al contenido


Foto

guardar hora


  • Por favor identifícate para responder
16 respuestas en este tema

#1 edgar_prospero

edgar_prospero

    Advanced Member

  • Miembros
  • PipPipPip
  • 136 mensajes

Escrito 06 agosto 2012 - 09:02

que hay amigos aqui con un problemita tengo un codigo en el cual me guarda bien la informacion, pero con la hora tengo problemas porque cuando veo la base de datos cualquier hora que le ponga me la guarda asi -838:59:59  para capturar la hora estoy usando un DateTimePicker, ojala me puedan echar la mano el codigo es el siguiente:



delphi
  1. tabla.SQL.Clear;
  2. tabla.Close;
  3. tabla.SQL.Add('insert into paquetes(folio, nombre, hora, descripcion, precio)values(:pfolio, :pnombre, :phora, :pdescripcion, :pprecio)'+
  4. ' on duplicate key update nombre=:pnombre, descripcion=:pdescripcion, precio=:pprecio');
  5. tabla.ParamByName('pfolio').AsString:=folio.Text;
  6. tabla.ParamByName('pnombre').AsString:=nombre.Text;+
  7. tabla.ParamByName('phora').AsTime:=hora.Time;
  8. tabla.ParamByName('pdescripcion').AsString:=descripcion.Text;
  9. tabla.ParamByName('pprecio').AsString:=precio.Text;
  10.  
  11.  
  12. tabla.Execute;
  13.  
  14.  
  15.  
  16.   tabla.SQL.Clear;
  17.   showmessage('grabado con exito ');


  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 06 agosto 2012 - 09:06

El valor de la propiedad Kind del DateTimePicker es dtkDate o dtkTime.

Saludos
  • 0

#3 edgar_prospero

edgar_prospero

    Advanced Member

  • Miembros
  • PipPipPip
  • 136 mensajes

Escrito 06 agosto 2012 - 09:08

la puse en dtktime
  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 06 agosto 2012 - 09:32

la puse en dtktime


Pues lo unico que se me ocurre es que tengas mal algún formato, sea en la base de datos, en el código o en el objeto, ya descartamos dos, tal vez el problema está en el campo de la BD.

Saludos
  • 0

#5 edgar_prospero

edgar_prospero

    Advanced Member

  • Miembros
  • PipPipPip
  • 136 mensajes

Escrito 06 agosto 2012 - 09:45

pues e nl abase de datos hora lo tengo con el tipo de dato time no se si eso me este provocando que me guarde en ese formato la hora (-838:59:59)
  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 06 agosto 2012 - 09:49

pues e nl abase de datos hora lo tengo con el tipo de dato time no se si eso me este provocando que me guarde en ese formato la hora (-838:59:59)


Haz éste ejercicio



delphi
  1. ....
  2. showMessage( timetostr(hora.Time) );
  3. tabla.ParamByName('phora').AsTime := hora.Time;
  4. ....



Y muestranos la pantalla del showMessage;

Saludos

  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 06 agosto 2012 - 09:51

Una pregunta....

Esto no te da error ?



delphi
  1. ...
  2. tabla.ParamByName('pnombre').AsString:=nombre.Text;+ ///Este signo de mas ¿?
  3. tabla.ParamByName('phora').AsTime:=hora.Time;
  4. ...


  • 0

#8 edgar_prospero

edgar_prospero

    Advanced Member

  • Miembros
  • PipPipPip
  • 136 mensajes

Escrito 06 agosto 2012 - 10:39

egostar ese signo de mas no esta en mi  codigo al pasarlo aqui a la pagina se me fue sin querer jeje......y el showmessage me pone la hora correcta que capturo en el DateTimePicker, el error esta como se guarda en la base de datos
  • 0

#9 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 06 agosto 2012 - 10:49

egostar ese signo de mas no esta en mi  codigo al pasarlo aqui a la pagina se me fue sin querer jeje......y el showmessage me pone la hora correcta que capturo en el DateTimePicker, el error esta como se guarda en la base de datos


Vaya pues el asunto está clavado en la forma como se pega el dato al campo.

Y si haces esto ?



delphi
  1. ...
  2. tabla.ParamByName('phora').AsString := timetostr(hora.Time);
  3. ...



Saludos
  • 0

#10 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 06 agosto 2012 - 10:52

qué base de datos es?
  • 0

#11 edgar_prospero

edgar_prospero

    Advanced Member

  • Miembros
  • PipPipPip
  • 136 mensajes

Escrito 06 agosto 2012 - 10:54

poniendolo de esa manera me guarda la hora en ceros 00:00:00, y la base de datos esta en mysql
  • 0

#12 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 06 agosto 2012 - 11:09

Prueba de esta manera:



delphi
  1. tabla.SQL.Clear;
  2. tabla.Close;
  3. tabla.SQL.Add('insert into paquetes(folio, nombre, hora, descripcion, precio)values(:pfolio, :pnombre, :phora, :pdescripcion, :pprecio)'+
  4. ' on duplicate key update nombre=:pnombre, descripcion=:pdescripcion, precio=:pprecio');
  5. tabla.ParamByName('pfolio').AsString:=folio.Text;
  6. tabla.ParamByName('pnombre').AsString:=nombre.Text;
  7. tabla.ParamByName('phora').AsTime:= FormatDatetime('hhnnss',hora.Time);
  8. tabla.ParamByName('pdescripcion').AsString:=descripcion.Text;
  9. tabla.ParamByName('pprecio').AsString:=precio.Text;
  10. tabla.Execute;
  11. tabla.SQL.Clear;
  12. showmessage('grabado con exito ');


  • 0

#13 edgar_prospero

edgar_prospero

    Advanced Member

  • Miembros
  • PipPipPip
  • 136 mensajes

Escrito 06 agosto 2012 - 11:46

gracias  poliburro ahi mero quedo lo que necesitaba excelente respuesta y gracias tambien a los demas que aportaron saludos
  • 0

#14 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 06 agosto 2012 - 12:00

Prueba a cambiar hora.time por now para que use la hora del sistema a ver...
  • 0

#15 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 06 agosto 2012 - 12:07

Ahora entiendo



delphi
  1. tabla.ParamByName('phora').AsTime:= FormatDatetime('hhnnss',hora.Time);



El campo en MySQL no es el típico "hh:nn:ss", es hhnnss. Que changos tan raros :p

Saludos

  • 0

#16 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 06 agosto 2012 - 12:08

Ahora entiendo



delphi
  1. tabla.ParamByName('phora').AsTime:= FormatDatetime('hhnnss',hora.Time);



El campo en MySQL no es el típico "hh:nn:ss", es hhnnss. Que changos tan raros :p

Saludos


de hecho amigo los campos de fecha son manejados por cada motor de base de datos a antojo.. por ejemplo en Db2 el campo debe ser hh:nn:ss.000000
  • 0

#17 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 06 agosto 2012 - 12:28

de hecho amigo los campos de fecha son manejados por cada motor de base de datos a antojo.. por ejemplo en Db2 el campo debe ser hh:nn:ss.000000


Si si, ahi solo le agregan los milisegundos, pero el separador sigue siendo los dos puntos.

Es por ejemplo, Firebird muestra la fecha como mm.dd.yyyy, pero no le importa que la agregues como mm/dd/yyyy, a eso me refiero, que a pesar de que el formato que usan es como les viene en gana, no se cierran a recibir los datos como normalmente lo haces. ;)

Saludos
  • 0




IP.Board spam blocked by CleanTalk.