DBF's en RED

DBF's en RED

Postby Loren » Mon May 26, 2008 11:59 am

Compañeros:

Tengo un sistema instalado en una RED Local que utiliza entre otras DBF's temporales. ¿ Como podría saber cual es el último PC que abandona sesión o sale del programa para eliminar esta DBF's temporales?

Mil gracias.
LORENZO
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Postby Loren » Mon May 26, 2008 12:16 pm

Perdón.... me expresé mal.

Queria decir, que necesito saber cuando hay un solo PC conectado a la RED para que cuando este cierre el programa se borren las DBF

Mil gracias.
LORENZO
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Postby cmsoft » Mon May 26, 2008 1:23 pm

Hola Lorenzo:
Una opcion es tener una tabla que registre las entradas al sistema y que asigne un numero de terminal a cada instancia abierta del programa.
Con ese numero de terminal, creas los temporales para cada instancia.
Cuando sale del programa, borra a ese numero de terminal y todos los temporales creados con ese numero.
El problema es que cuando sale del programa en forma incorrecta ( porque se cuelga la aplicacion) esos temporales y ese numero de terminal te quedan como activos, por lo tanto tendrias que tener una opcion de mantenimiento que elimine los temporales y vacie la tabla que asigna los numeros de terminal (obviamente cuando no hay terminales usando el sistema).
Seria algo asi:
Code: Select all  Expand view  RUN
FUNCTION abre_est
LOCAL festac := 1
USE estacion SHARED
DO while festac < 999
   LOCATE FOR estacion->estacion = festac
   IF !Found()
      estacion->(DBAPPEND())
      IF !NETERROR()
         REPLACE estacion->estacion  WITH festac
         CLOSE estacion
         RETURN (STRTARN(STR(festac,2),' ','0'))
      ENDIF
   ENDIF
   festac ++
ENDDO
CLOSE estacion
MsgInfo("Realice tarea de mantenimiento")
RETURN (STRTRAN(STR(festac,2)," ","0"))

FUNCTION cierra_est(festac)
USE estacion SHARED
LOCATE FOR estacion->estacion = VAL(festac)
IF FOUND()
    estacion->(DBDELETE())
    PACK
    ERASE "TEMPO"+festac+".DBF")
    ERASE "TEMPO"+festac+".DBT")
ENDIF
CLOSE estacion
RETURN nil


Espero que te sirva de algo
Atte
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: DBF's en RED

Postby lubin » Mon May 26, 2008 3:30 pm

Holas Lorenzo
un consulta,,, las Dbfs temporales.. son para uso exclusivo del usuario de la PC ???.. o son DBF temporales que compartes con otros usuarios.. ?? y donde almacenas las DBF, en Servidor o en la PC-Local ??

De esto podria depender lo que deseas controlar..

Pienso que si son para uso exlusivo del usuario de la PC , y no los vas a compartir con otros usuarios ,, lo ideal crear las DBF temporales en forma local, es decir grabarlos en la misma PC en una caprta TEMP y cuando terminas el programa o el modulo limpiar tus temporales sin problemas.

En caso que los temporales esten compartidos con otros usuarios, grabarlos en el servidor en una carpeta Temp, y usar el metodo que te menciona CMSOFT de crear una tabla Log .. para controlar los accesos , creacion y borrados..


Suerte

Lubin


Loren wrote:Compañeros:

Tengo un sistema instalado en una RED Local que utiliza entre otras DBF's temporales. ¿ Como podría saber cual es el último PC que abandona sesión o sale del programa para eliminar esta DBF's temporales?

Mil gracias.
LORENZO
User avatar
lubin
 
Posts: 450
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 47 guests