Clarion - Velocidad

 
Vista:

Velocidad

Publicado por Marco (108 intervenciones) el 29/01/2009 18:20:58
Tengo una aplicacion que carga una factura y genera la financiacion de acuerdo a la forma de pago (puede ser 1 o mas registros dependiendo de la cantidad de cuotas), el problema es que es muy lento, esta hecho en clarion 6.3 con legacy
y el codigo es como sigue y esta insertado en el when completed, before writing to disk

If LocalRequest = InsertRecord and (aux:tipodoc = 2 or aux:tipodoc = 29)
cancuo = 1
FIN:Fecha_vto = aux:fecha
loop
if cancuo <= aux:cancuo
FIN:NroFactura = FAC:NroFactura
FIN:NroDocumento = aux:NroDoc
FIN:Nro_cuota = cancuo
FIN:Importe = round((aux:total / aux:cancuo),1)
FIN:saldo = round((aux:total / aux:cancuo),1)
FIN:Fecha_vto += aux:dias
FIN:Fecha_ultpago = 0
FIN:NroCliente = aux:cli
FIN:NroRecibo = ''
add(FINANCIACION)
if errorcode() then stop('ERROR AL AGREGAR FINANCIACION ' & error()).
cancuo += 1
else
break
.
.
.

Las tablas son .dat, ya use logout y lo mismo sigue siento muy lento, alguien tiene idea de lo que pueda estar pasando y como solucionarlo?
Desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Velocidad

Publicado por Bassi, Rodrigo (112 intervenciones) el 29/01/2009 19:29:04
Hola, Probaste con el STREAM y FLUSH??

en Open Files
STREAM(FINANCIACION)

y en Kill Procedure

FLUSH(FINANCIACION)

con respecto al punto de embebido nunca lo he usado, siempre he usado el TakeCompleted en la carga de datos.

Espero te pueda servir en algo.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Velocidad

Publicado por Marco (108 intervenciones) el 29/01/2009 23:07:50
Gracias por la ayuda, lo voy a probar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Velocidad

Publicado por Enrique Pérez Cázares (63 intervenciones) el 30/01/2009 02:18:21
Rodrigo:
El punto embebido no lo conoces porque esos puntos solo aplican en template legacy. Tu te refieres a embebidos ABC (objetos), los cuales son muy diferentes.

Marco:
La recomendación de Rodrigo es acertada. Solo unas notas adicionales.

El archivo deberá se abierto en modo exclusivo "no compartido", ver diferencias entre share y open. de no se así el comando "Stream", no sirve de nada. Además en lugar de utilizar Add para añadir registros. es recomendable usar Append y al terminar de añadir registros aplicar flush y Build.

En resumen, este es un proceso batch que añade registros pero el proceso se realiza en memoria y no con actualización directa a disco duro, que es lo que ralentiza el proceso.

Estudia los manuales de Clarion con respecto al comando Append. La documentaqión es muy completa al respecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Velocidad

Publicado por Bassi, Rodrigo (112 intervenciones) el 30/01/2009 16:37:58
Gracias Enrique!

Todos los dias se aprende algo nuevo! :)

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar