cerca de 1000000 de registros y está en una red. Los equipos tienen Windows XP y el servidor es un Windows server 2008
Este proceso lo hago en principio en una carpeta de prueba, que también está en la red, y como es un proceso que
lleva un tiempo en realizarse, en un momento quise cancelar el mismo y me arrojó el mensaje de que "no existe el alias
MOVMER", la tabla que está procesando. La pregunta es, ¿Como puedo cancelar dicho proceso sin que me arroje el mensaje
de error?, o sea cerrar la tabla y salir del formulario como si no hubiese iniciado el proceso. El código fuente es el de abajo.
Code: Select all
use movmer shared new
DEFINE WINDOW frmCambRubr ;
AT 0,0 ;
WIDTH 500 ;
HEIGHT 200 ;
TITLE "Cambia Rubro Gx" ;
CHILD ;
NOSIZE ;
BACKCOLOR {193,231,253 } ;
ON RELEASE CierraTabla()
DEFINE TOOLBAR tbCambRubr BUTTONSIZE 120,30 FLAT BORDER
BUTTON btnProcesar ;
CAPTION '&Procesar' ;
ACTION Proceso() TOOLTIP 'Procesar'
BUTTON btnSalir ;
CAPTION '&Salir' ;
PICTURE 'Salir.bmp' ;
ACTION frmCambRubr.release() TOOLTIP 'Salir'
END TOOLBAR
DEFINE STATUSBAR
STATUSITEM "Cambio de Rubro y código"
END STATUSBAR
ON KEY ESCAPE ACTION {|| ThisWindow.release() }
END WINDOW
frmCambRubr.Center
frmCambRubr.Activate
/***
*/
static Function Proceso()
local nReg100
frmCambRubr.btnProcesar.enabled:=.f.
nReg100:=0
movmer->( OrdSetfocus( 0 ) )
movmer->( DbGotop() )
do whil !movmer->( Eof() )
if movmer->rubro $ "GB_GC_GE_GF_GN_GO_GP_GT"
movmer->( Reclock() )
movmer->clave:=movmer->rubro +rtrim( movmer->clave )
movmer->rubro:="GC"
end if
if nReg100 = 100
frmCambRubr.statusbar.item(1):="Procesando movmer: " +str( movmer->( ordkeyno() ) / movmer->( ordkeycount() )*100,3 )+' %'
nReg100:=0
do events
else
nReg100++
end if
movmer->( DbSkip() )
end whil
frmCambRubr.statusbar.item(1):=space(40)
movmer->( DbCommitAll() )
movmer->( DbUnlockAll() )
/***/
static Function CierraTabla()
movmer->( DbCloseArea() )
retu Nil
Sistemas
Resipol