Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda no encuantro el ERROR (https://www.clubdelphi.com/foros/showthread.php?t=53346)

ManuelPerez 19-02-2008 01:59:35

Ayuda no encuantro el ERROR
 
hola a todos donde cometo el error:
function TFRMFacturacion.VerificaRepite2(codigo :string):Double;
var xx: Double;
begin
IBDSArtFactura2.Active:=true;
IBDSArtFactura2.First;
xx:=0;
while not IBDSArtFactura2.Eof do
begin
if(IBDSArtFactura2CODARTICULO.AsString = codigo)then
begin
xx:=xx+IBDSArtFactura2CANTIDAD.AsFloat;
end;
IBDSArtFactura2.Next;
end;
VerificaRepite2:=xx;
end;

y me tira un error " is not a valid floating point value" QUE ?????

AYUDA POR FAVOR

poliburro 19-02-2008 02:07:10

Cita:

Empezado por ManuelPerez (Mensaje 266822)
hola a todos donde cometo el error:
Código Delphi [-]
 
function TFRMFacturacion.VerificaRepite2(codigo :string):Double;
var xx: Double;
begin
IBDSArtFactura2.Active:=true;
IBDSArtFactura2.First;
xx:=0;
while not IBDSArtFactura2.Eof do
begin
if(IBDSArtFactura2CODARTICULO.AsString = codigo)then
begin
xx:=xx+IBDSArtFactura2CANTIDAD.AsFloat;
end;
IBDSArtFactura2.Next;
end;
VerificaRepite2:=xx;
end;

y me tira un error " is not a valid floating point value" QUE ?????

AYUDA POR FAVOR


dos cosas, por favor usa bloques de sintaxis para cuándo postees código.
y séría ideal que indicaras en que línea ocurre el error.

ManuelPerez 19-02-2008 02:11:47

Perdon por la improlijidad
 
El error lo tira cuando devuelvo el dato ' VerificaRepite2:=xx; ' aqui

pero me lo tira cuado el número es un integer, es decir, xx = 1 y no cuando xx = 1,3 . No se si soy claro cuando devuelve el dato ya calculado.
como hago para si suma Integer devuelva si error y cuando sume float tambien.
gracias

Lepe 19-02-2008 10:01:22

Si fuera como dices, el mensaje obetnido sería este:
error '1' is not a valid floating point value
pero el mensaje no usa comillas dobles (tipográficas) sino las comillas simples de delphi con el valor del campo dentro.

El error dice que algun registro está vacío, es decir, no tiene nada, ni siquiera un cero patatero. Es típico cuando dejas el campo "cantidad" sin rellenar y se guarda un valor nulo (null).

La solución según tu código:
Código Delphi [-]
if not IBDSArtFactura2CANTIDAD.IsNull then // solo sumamos si no es nulo
  xx:=xx+IBDSArtFactura2CANTIDAD.AsFloat;


Otra forma de hacerlo:
Código Delphi [-]
ibquery1.sql.text := 'select Sum(cantidad) from tabla where codigo = :codigo and cantidad is not null';
ibquery1.parambyname('codigo').Asxxxx := loque sea;
ibquery.Open;
Resultado := ibquery.Fields[0].AsFloat;

Por supuesto la tabla debe estar guardada (que no esté en edición).


La franja horaria es GMT +2. Ahora son las 17:24:32.

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