Me Saca de la Aplicaci
Publicado: Jue Mar 30, 2006 4:29 pm
Tengo un Form que al ejecutar una consulta, dependiendo de el tamaño que sea
el período que consulte, ME LANZA FUERA DE LA APLICACIÓN sin lanzar ningún
mensaje!!!
Antes que nada decir que compilado con la PR6b funciona perfectamente.
Por lo que deduzco es que SE QUEDA SIN RECURSOS!!!
Por lo que he podido averiguar, este proceso si se hace hasta 2342 registros
+ o - funciona correctamente...
Cuando és la consulta por más registros, se bloquea el Form, no refresca los
objetos que hay en su interior y ademas, si cierro la ventana me lanza GPF
code = c0000005
Acces violation
RUNFORM(0)
TAPPLICATION:RUN(189)
MAIN(28)
....
While FITXADOR->( !Eof() )
::oProgressBar1:nValue := nI++
ProcessMessages()
Aadd( aItems, { FITXADOR->CODI,;
FITXADOR->NUMERO,;
DtoC( FITXADOR->DIAINICI ) + " "+
FITXADOR->HORAINICI,;
FITXADOR->HORAFINAL,;
FITXADOR->HORES,;
FITXADOR->TRE,;
FITXADOR->LINIA,;
If( FITXADOR->S, "S", "N" ),;
FITXADOR->NOTES,;
FITXADOR->( Recno() ),;
FITXADOR->DIA } )
nHores += FITXADOR->TRE
nH += Val( Left( AllTrim( FITXADOR->HORES ), At( "H",
FITXADOR->HORES ) - 1 ) )
nM += Val( Right( AllTrim( FITXADOR->HORES ), 3 ) )
n := Ascan( ::aItemsCodi, {|x| x[ 1 ] == FITXADOR->CODI } )
If n == 0
Aadd( ::aItemsCodi, { FITXADOR->CODI, FITXADOR->TRE } )
Else
::aItemsCodi[ n, 2 ] += FITXADOR->TRE
Endif
*A partir de este código es cuando si lo incluyo ME LANZA FUERA !!!
n := Ascan( ::aItemsOR, {|x| x[ 1 ] == FITXADOR->NUMERO } )
If n == 0
Aadd( ::aItemsOR, { FITXADOR->NUMERO, FITXADOR->TRE } )
Else
::aItemsOR[ n, 2 ] += FITXADOR->TRE
Endif
n := Ascan( ::aItemsData, {|x| x[ 1 ] == FITXADOR->DIAINICI } )
If n == 0
Aadd( ::aItemsData, { FITXADOR->DIAINICI, FITXADOR->TRE } )
Else
::aItemsData[ n, 2 ] += FITXADOR->TRE
Endif
***
FITXADOR->( DbSkip() )
EndDo
FITXADOR->( DbCloseArea() )
....
He puesto este mismo Form en un nuevo proyecto y me funciona correctamente.
¿Sera por el tamaño del ejecutable???
¿Cómo puedo incrementar el tamaño de un proyecto nuevo, para que me ocupe
los 2,58Mb que tengo en mi aplicación????
No se que hacer...
Lo que falla es Ascan()
Si comento los dos últimos Ascan() y le pongo que n:=0 y así SIEMPRE añada
al Array, FUNCIONA correctamente.
El Ascan() se me come los recursos!!!
Gracias.
Un Saludo,
Xevi.
el período que consulte, ME LANZA FUERA DE LA APLICACIÓN sin lanzar ningún
mensaje!!!
Antes que nada decir que compilado con la PR6b funciona perfectamente.
Por lo que deduzco es que SE QUEDA SIN RECURSOS!!!
Por lo que he podido averiguar, este proceso si se hace hasta 2342 registros
+ o - funciona correctamente...
Cuando és la consulta por más registros, se bloquea el Form, no refresca los
objetos que hay en su interior y ademas, si cierro la ventana me lanza GPF
code = c0000005
Acces violation
RUNFORM(0)
TAPPLICATION:RUN(189)
MAIN(28)
....
While FITXADOR->( !Eof() )
::oProgressBar1:nValue := nI++
ProcessMessages()
Aadd( aItems, { FITXADOR->CODI,;
FITXADOR->NUMERO,;
DtoC( FITXADOR->DIAINICI ) + " "+
FITXADOR->HORAINICI,;
FITXADOR->HORAFINAL,;
FITXADOR->HORES,;
FITXADOR->TRE,;
FITXADOR->LINIA,;
If( FITXADOR->S, "S", "N" ),;
FITXADOR->NOTES,;
FITXADOR->( Recno() ),;
FITXADOR->DIA } )
nHores += FITXADOR->TRE
nH += Val( Left( AllTrim( FITXADOR->HORES ), At( "H",
FITXADOR->HORES ) - 1 ) )
nM += Val( Right( AllTrim( FITXADOR->HORES ), 3 ) )
n := Ascan( ::aItemsCodi, {|x| x[ 1 ] == FITXADOR->CODI } )
If n == 0
Aadd( ::aItemsCodi, { FITXADOR->CODI, FITXADOR->TRE } )
Else
::aItemsCodi[ n, 2 ] += FITXADOR->TRE
Endif
*A partir de este código es cuando si lo incluyo ME LANZA FUERA !!!
n := Ascan( ::aItemsOR, {|x| x[ 1 ] == FITXADOR->NUMERO } )
If n == 0
Aadd( ::aItemsOR, { FITXADOR->NUMERO, FITXADOR->TRE } )
Else
::aItemsOR[ n, 2 ] += FITXADOR->TRE
Endif
n := Ascan( ::aItemsData, {|x| x[ 1 ] == FITXADOR->DIAINICI } )
If n == 0
Aadd( ::aItemsData, { FITXADOR->DIAINICI, FITXADOR->TRE } )
Else
::aItemsData[ n, 2 ] += FITXADOR->TRE
Endif
***
FITXADOR->( DbSkip() )
EndDo
FITXADOR->( DbCloseArea() )
....
He puesto este mismo Form en un nuevo proyecto y me funciona correctamente.
¿Sera por el tamaño del ejecutable???
¿Cómo puedo incrementar el tamaño de un proyecto nuevo, para que me ocupe
los 2,58Mb que tengo en mi aplicación????
No se que hacer...
Lo que falla es Ascan()
Si comento los dos últimos Ascan() y le pongo que n:=0 y así SIEMPRE añada
al Array, FUNCIONA correctamente.
El Ascan() se me come los recursos!!!
Gracias.
Un Saludo,
Xevi.