PDA

Ver la Versión Completa : problema con campos date mysql en delphi


mcenit
27-07-2004, 13:54:15
:confused:El problema es que al enlazar un campo date en una aplicación que estoy realizando, al compilarla se produce un error " 0.0 is not a valid datetime" . Si elimino los campos fecha, el programa funciona sin problemas.

Si alguien me puede decir que está pasando os lo agradezco de antemano

Ni que decir tiene que no conozco casi nada de mysql. Lo que estoy haciendo es migrar un programa que trabajaba con tablas locales para poder hacerlo en red. Estoy utilizando dbexpres con los componentes propios para realizar la conexión y he hecho pruebas tanto en localhost como a través de un servidor remoto. Pero me he quedado atrancado con las dichosas fechas.

Gracias

roman
27-07-2004, 18:46:23
al compilarla se produce un error " 0.0 is not a valid datetime"

Bueno, es que 0.0 no es una fecha/hora válida. Aunque es cierto que Delphi internamente maneja un tipo DateTime como un Double y muchas bases así también lo hacen, la realidad es que por lo general requerirán que pases las fechas en el formato adecuado, por ejemplo, yyyy-mm-dd hh:mm:ss. ¿Cómo estás tratando de asignar valores a tales campos?

// Saludos

mcenit
28-07-2004, 17:41:00
Bueno antes que nada el mensaje correcto que emite delphi al fallar es el siguiente " '0.0' is not a valid timestamp".

Lo único que hasta ahora he hecho es poner en el form un dbedit que apunta a un campo date de la tabla mysql. El dbedit no tiene ninguna máscara ni nada. Aunque he probado a poner como máscara de captura el formato fecha de mysql, pero tampoco va.

He hecho pruebas también con un dbgrid en el que enlazo todos los campo de la tabla, en este caso sin llegar a compilar el programa al activar la tabla da el mensaje de error y el ordenata se cuelga.

La tablas estaban en dbase y las convertí a mysql con Datapum, pero tambien he llegado a probar creando una tabla desde phpmyadmin, en la que incluyo algun campo date y no hay manera. Incluso aunque no llegue a incluir el campo date en el form.

La unica forma en la que estoy pudiendo depurar otras cosas de la aplicación ha sido eliminar de la tabla los campos date (un poco chapucera), hasta ver si hay alguna solución.

roman
28-07-2004, 19:00:20
¿Qué componentes estás usando para acceder a MySql?

mcenit
29-07-2004, 11:47:20
sqlconection y sqltable de Dbexpres, datasetprovider y clientdataset de Dataacces y un Data source enlazado al clientdataset.

Estoy utilizando estos porque mi intención, si consigo migrar la aplicación es pasarla a kylix.

Como ya he comentado antes la conexión se produce con éxito, abro la tabla sin problemas, siempre que no tenga ningún campo date, y la manipulo agregando o modificando datos. Pero si incluyo algún campo de fecha, simplemente al intentar compilar da el mensaje de error, sólo habiendo colocado un dbetid que apunte al campo.

erns++
29-08-2004, 19:21:47
saludos a todos
este es mi primera participacion en este foro, yo desarrollo en c++ builder pero la ayuda en internet no es mucho sobre builder, por eso recurro a delphi y luego lo adapto al builder. dejando todo el floro a mi me paso el mismo problema, bueno primero seria que revises como estas ingresando los datos a tu tabla mysql, seguro si te fijas esos campos estan como 0000-00-00 por eso surge el problema, deberias arreglar eso primero, cuando el formato en que se ingresa un valor de tipo data en mysql no tiene el formato correcto, mysql lo asume todo como cero. te recomiendo que las consultas al mysql lo hagas de modo consola ahi se aprecian bien los detalles. pero si tienes dudas o quieres mas detalle mandame un correo a redeslinux@hotmail.com

hasta luego

ctronx
02-09-2004, 16:30:52
Yo probe la misma forma de conexion que tu con dbexpress luego decidi probar los componentes zeos y me quede con estos ultimos ya que se me hace mas sencilla la forma de conexion e igual ó mejor de efectiva (creo tambien hay zeos para usarce en kylix).

Prueba zeos en otro programita que te conecte con tu base y tu tabla que incluya las fechas (prueba y luego decides)