Hola, aqui tienes otro ejemplo.
//---------------------//
FUNCTION AvisaMf()
local oDlg
LOCAL oTimer, nInterval := 60000 * .50
local cNombServ := "SERVIDOR", cDir := "PRUEBAS"
local cPathF := "\\"+cNombServ+"\"+cDir
local cTable := "TUTABLA"
local nRegis := 0
if !file(cPathF+"\"+cTable+".dbf")
MsgStop("No se encontro tabla "+ cPathF+"\"+cTable+".dbf" + " Revise y reintente")
return nil
endif
dbusearea(.t.,,(cPathF)+"\"+(cTable),(cTable),.t.)
if neterr()
MsgStop("Hey... No se puede usar en este momento, la tabla "+cPathF+"\"+cTable)
return nil
endif
nRegis := (cTable)->(Reccount())
(cTable)->(dbclosearea())
DEFINE DIALOG oDlg SIZE 400,200 PIXEL
ACTIVATE DIALOG oDlg CENTERED ;
ON INIT TmrDocs(@oTimer,nInterval,@nRegis,cPathF,cTable)
oTimer:End()
RETURN(NIL)
//-------------------------------------------------------
Function TmrDocs(oTimer,nInterval,nRegis,cPathF,cTable)
DEFINE TIMER oTimer INTERVAL nInterval ACTION DctoModifi(cPathF,cTable,@nRegis)
ACTIVATE TIMER oTimer
Eval( oTimer:bAction )
Return nil
//----------------------------
Function DctoModifi(cPathF,cTable,nRegis)
local nRegistActual
dbusearea(.t.,,(cPathF)+"\"+(cTable),(cTable),.t.)
if neterr()
MsgStop("No se puede usar en este momento, la tabla "+cPathF+"\"+cTable)
return nil
endif
nRegistActual := (cTable)->(Reccount())
if nRegistActual != nRegis
MsgInfo("Hay modificaciones")
nRegis := nRegistActual
else
MsgInfo("No ha habido modificaciones")
endif
(cTable)->(dbclosearea())
Return nil
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql