Cita:
Empezado por lucho1981
Buenas amigos. Mi consulta consiste en que cuando quiero guardar un valor tipo float (2,5) tengo error en mysql, porq admite el valor 2.5 y no la coma.
Lo que estoy haciendo es tomar un valor de la base de datos (valor con coma) y sumarle o restarle algo (según corresponda), ese valor lo guardo en una variable tipo double y le sumo o resto el contenido de un edit pasado a float. El problema es que en delphi el tipo de dato FLOAT admite un valor con comas y no con punto.
No se si este haciendo lo mas óptimo pero deberia funcionar a mi modo de ver.
Desde ya muchas gracias
Código Delphi [-]Código Delphi [-]procedure TFcajainout.CajaEntrada();
var
hoy:Tdatetime; ya, new:double;
begin
hoy:=now;
With DM.QCajainout do
begin
ParamByName ('fecha').Value:=Formatdatetime('yyyymmdd',hoy);
ParamByName ('lega').Value:=Principal.Lega.Caption;
ParamByName ('ptipo').Value:='1';
ParamByName ('monto').Value:=monto.Text;
ParamByName ('concepto').Value:=concepto.Text;
ExecSQL;
end;
Dm.Tcaja.locate('id','1',[]);
ya:=DM.tcaja.FieldByName('actual').asfloat;
new:=ya+strtofloat(monto.text);
With dm.Qcajaactual do
begin
ParamByname ('nuevo').asfloat:=new;//creo que aqui era el problema
ExecSQL;
end;
end;
|
Pruebalo.....
Edito: Cuando obtengas o asignes valores a(de) los campos(Field) siempre trata de asignarselo haciendo uso de sus propiedades tales como:
.AsInteger para los integer,
.AsFloat para los Float,
.AsString para los string,etc. Trata en lo posible no usar la propiedad
.Value pues es de tipo variant y creo que por ahi puede ocurrir algunos errores de tipos de datos.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7