Hola a todos:
Teniendo un bucle tal que asi:
Cuando en la linea (*) Importe sea cero entonces sera llamado el controlador de errores porque se habra producido una division por cero. En el controlador de errores (errorsys) el error sera tratado, y el tratamiento por defecto ser谩 devolver cero como resultado de la division y no habra pasado nada.... pero SI HABRA PASADO Y MUCHO, y es que la velocidad del proceso se resentira mucho, si hay muchas iteraciones del bucle en las que sucede eso. Para solucionarlo, mejor controlar antes el valor de Importe y si es cero entonces no hacer la division:
S贸lo era una curiosidad.
Saludos
Teniendo un bucle tal que asi:
SELECT (cAli)
GO TOP
DO WHILE !Eof()
聽 聽nPrecio:= Importe/ Cantidad 聽 聽 聽 聽 聽 聽 // <strong>(*)</strong>
聽 聽REPLACE Precio WITH nPrecio
聽 聽SKIP
ENDDOCuando en la linea (*) Importe sea cero entonces sera llamado el controlador de errores porque se habra producido una division por cero. En el controlador de errores (errorsys) el error sera tratado, y el tratamiento por defecto ser谩 devolver cero como resultado de la division y no habra pasado nada.... pero SI HABRA PASADO Y MUCHO, y es que la velocidad del proceso se resentira mucho, si hay muchas iteraciones del bucle en las que sucede eso. Para solucionarlo, mejor controlar antes el valor de Importe y si es cero entonces no hacer la division:
SELECT (cAli)
GO TOP
DO WHILE !Eof()
聽 聽IF Importe == 0
聽 聽 聽nPrecio:= 0
聽 聽ELSE
聽 聽 聽 nPrecio:= Importe/ Cantidad
聽 聽ENDIF 聽
聽 聽REPLACE Precio WITH nPrecio
聽 聽SKIP
ENDDOS贸lo era una curiosidad.
Saludos