FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Grabar DateField en MySQL da error
Hola,
Después de tiempo les presento una consulta que no puedo resolver, se trata de lo siguiente: 1. Estoy pasando una aplicación que trabaja con una BBDD SQL Server, sin problemas, a usar BBDD MySQL; 2. En una parte de la aplicación hay una grilla donde el usuario ingresa 3 datos: Una Fecha (dd/mm/yyyy), y dos datos mas, cuando termina el registro pasa al siguiente grabándose la información del anterior, esto funciona perfectamente en la versión SQL Server; 3. La misma operacion usando MySQL da el error 'Field value required', y he comprobado que es el campo Fecha, que pasa al MySQL en formato dd/mm/yyyy y eso no es soportado solo se permiten fecha yyyymmdd y otros mas pero siempre con el año como primer campo. 4. He tratado de resolver esto con lo en el evento OnBeforePost tratando de modificar la Fecha al formato YYYYMMDD pero da error que es fecha inválida. 5. He leído que se puede interceptar el DataPacket del Provider para modificarlo, pero no se como hacerlo; En todo caso, una operación cotidiana y sencilla lo debería resolver el DBExpress, pero por alguna razón no lo hace. Recurro a usted por si me dan alguna solución. Muchas gracias |
#2
|
|||
|
|||
Estimado
Revisa este link http://www.clubdelphi.com/foros/showthread.php?t=68351, tal vez ahí este la solución a tu problema. Saludos
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara ....... |
#3
|
|||
|
|||
Gracias Alejando73:
El caso es que si yo preparo la sentencia SQL no tengo problemas en grabar, lo hace bien, porque en la sentencia puedo modificar el valor que envía al campo Date poniendo 'yyyymmdd'. El problema surge cuando desde la grilla se envía a grabar, ya sea con el botón nbPost del componente TDbNavegator o porque pasa al siguiente registro. En ese caso lo que ocurre es que en DBExpress genera automáticamente la sentencia SQL dejando la fecha en formato dd/mm/aaaa, lo que produce el error. Necesito interceptar esa sentencia generada automáticamente por el dbExpress para modificarla, o sea modificar el datapacket. Si alguien sabe como hacerlo les agradeceré una mano. Muchas gracias. |
#4
|
|||
|
|||
Estimado
Y si cambias el TDBNavegator por botones? como lo son el bitbtn, speedbutton o tiene que ser necesariamente el TDBNavegator que se parece a la consola de comando de las radiocasette? Saludos
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara ....... |
#5
|
|||
|
|||
Hola Alejandro73:
Ya había probado la solución que sugieres y funciona, pero he encontrado otra sin la necesidad de eliminar el TDbNavegator, preparé un pequeño programa de ejemplo para probar y el resultado es este: 1. Creo un procedimiento para grabar el registro, como son campos persistentes no necesito el Sender, además así lo puedo invocar desde cualquier otro evento, lo que muestro es un ejemplo particular de mi aplicación, pero se entiende.
Luego en el evento OnPostError de la tabla pongo este código:
Así funciona correctamente, pero creo que es una solución TEMPORAL, porque insisto, el dbExpress debe resolver esta situación al generar el SQL automático. De todas formas agradeceré una respuesta para evitar estos artificios. Muchas gracias. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
grabar stringgrid en mysql | edgar_prospero | Varios | 9 | 04-07-2012 18:35:46 |
Error Al Grabar En Base De Datos | MARIA_MAR | MySQL | 2 | 09-05-2012 18:14:40 |
Error al grabar un registro en IB | Coichi Kake | Conexión con bases de datos | 2 | 17-08-2011 14:18:44 |
Error al Grabar informacion | The_figo | MySQL | 0 | 30-10-2006 17:53:53 |
Error al grabar | silviodp | Conexión con bases de datos | 5 | 31-05-2004 17:52:34 |
|