Problemas al guardar Float en Mysql
Buenas noches, estoy realizando una aplicación para llevar el control de los clientes en un gimnasio y al tratar de guardar los valores del monto en Mysql me salta el error "Column doesn't match value count at row 1", después de darle vueltas y vueltas vi que era porque estaba guardando en 3 campos diferentes valores decimales (9,8), (20,4), (52,5) por poner un ejemplo, y la sentencia Mysql me lo tomaba como 6 valores (9) (8) (20), (4), etc y todo por la COMA DECIMAL que hace que mysql los tome como dos valores distintos.
De esta forma me da el error: "Column doesn't match value count at row 1"
Intente guardar los valores como string pero los redondea como valores enteros:
Agradecería su orientación... |
Si los campos son float, no puedes guardar string en ellos.
Usa parámetros en lugar de componer la sql.
|
No he trabajado con parámetros hasta el momento, he visto varios ejemplos pero me saltan errores:
Pero me salta un error, ADOQUERY no reconoce parambyname como su miembro... he hecho algo mal? Gracias. |
Hola ZiriusB.
La sintáxis para el componente TADOQuery es:
Saludos :) |
Ya lo había averiguado jejejeje de todas formas muchas gracias, ahora me lanza un error al que no consigo darle vueltas u.u
First chance exception at $752D2C1A. Exception class EOleException with message 'Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros'. Process ProGym.exe (6964)
|
|
Ya lo habia intentado pero me seguia dando el error...
A la final todo se redujo a que el campo es "Datetime" en mysql y en el codigo le estaba dando un formato "Date", en SQL nunca me dio ese problema.
De todas formas me ayudo mucho trabajar con parametros, nunca lo habia hecho... Muchas gracias. |
No, con formatdatetime estás creando un string. Por eso te dije que asignaras el valor directamente.
|
Pues si lo coloco asi me genera error,
en delphi tengo una variable "Mfechahora" donde almaceno la fecha actual (Now), Si lo guardo asi no me genera error y guarda la fecha y hora exacta en BD:
Si lo guardo asi me genera error:
First chance exception at $7598B760. Exception class EOleException with message 'Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros'. Process ProGym.exe (2988) |
¿Estás seguro que el campo de la base de datos es del tipo datetime?
|
Completamente...
Yo pensaba que el FormatDateTime era para establecer un formato determinado a una fecha... es por eso que hasta ahora siempre lo he usado cuando quiero guardar fechas. |
¿Y Mfechahora de qué tipo es?
|
var
Mfechahora:tdatetime; /// Variable para fecha begin Mfechahora:=now; end; |
En mysql, ¿los campos fecha cómo se almacenan? ¿Acaso se guardan así: 10/10/2015 ?
Lo "normal" es que sea un número, ejemplo: 38216.365874124444 |
Asi: "2015-12-15 09:03:03"
Es por eso que uso el Formatdatetime, para darle el formato que acepta mysql de otro modo me daria un error al guardar ya que estaria tomando la fecha con valores incorrectos o fuera de rango... =( |
Hola ZiriusB.
No sé si el enlace tenga mas relación que mencionar el mismo mensaje de error, pero no perdes nada revisándolo: Error paso de fecha por parametro en ADO Saludos :) |
Cita:
Mejor lee lo que te indica ecfisa. Bueno, lo ha eliminado pensando que ya no valía la pena, pero creo que lo mismo es válido. |
Lei lo que coloco el compañero, hice lo que ahi dice pero me sigue arrojando el error de "Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros" algo que estoy viendo ahora es que cuando me genera el error al darle CONTINUE y volver a darle clic al boton guardar en el formulario pues me guarda normal sin error yal ir a base de datos me guarda dos registros... Edito: el servidor no permite insertar imagenes en el foro. u.u |
O sea, que el problema es otra cosa que no tiene nada que ver. Debes seguir tu código paso a paso con el depurador para encontrarlo.
Cita:
|
Hola.
Cita:
|
La franja horaria es GMT +2. Ahora son las 13:09:58. |
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