El error muchas veces se da, cuando una variable se divide entre otra variable con valor cero.
Un valor se puede multiplicar por cero, pero un valor no se puede dividir entre cero porque nos da error en este caso *******:
?(40*0) && = 0
?(40/0) && = *******
?(0*0) && = 0
?(0/0) && *******
?(40/-89) && = -0.45 && Si alguno de los dos es negativo, no hay asteriscos.
Ejemplo de caída:
CREATE CURSOR otro (numero N(13,2))
APPEND BLANK
REPLACE numero with (40/0)
Mensaje: Numeric overflow. Data was lost.
¿Porqué?, porque como te mencionan los colegas, al querer remplazar un campo con una longitud mayor no alcanzaría y VFP da el mensaje de error.
Solución propuesta:
Verificar siempre que el dividendo y divisor tengan un valor positivo o negativo, pero nunca un valor cero, si cualquiera de los dos tiene un valor cero entonces asignar cero al resultado, para que a la hora de remplazar no intente remplazar en el campo los asteriscos y se.nos caiga por el desbordamiento numérico.
Saludos
Anthony Contreras Perata
Costa Rica