FoxPro/Visual FoxPro - Comprobación

 
Vista:

Comprobación

Publicado por alexcoinc (450 intervenciones) el 08/09/2008 18:01:25
UN SALUDO.

En un manejo de inventarios, estoy realizando el cierre periódico, es decir pasar
de un mes a otro... ejemplo estoy en enero, realizo el cierre y este proceso se encargará de
crear el próximo mes,es decir febrero. Eso es claro.

Para ello necesito tener la certeza de que no haya nadie en la aplicación (menejo una red
con varios clientes - Multiusuario) que esté utilizando los archivos del mes que quiero
cerrar.. Los archivos basicamente son: IN200808.DBF y MO200808.DBF (Como ejemplo ellos
son del año 2008 y del mes 08 agosto. ...Ok.)

Cómo realizo esta verificación de la mejor manera, Uno para informarle al usuario que no se puede realizar el cierre en un momento determinado y Dos para imperdir que nadie utilice el periodo que se está cerrando mientras lo cierro.

Gracias

alexcoinc
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:Comprobación

Publicado por kong (682 intervenciones) el 08/09/2008 20:04:23
yo siempre con soluciones "artesanales"
utilizo un archivo llamado "centinela.dbf"

al inicio del programa se abre centinela.dbf en compartido (set exclusive off , use centinela.dbf alias centinela in 0)

cuando quiero saber si otros tienen abierto el programa en la red, cierro centinela.dbf y lo trato de abrir en exclusivo. (use in centinela, use centinela exclusive in 0).....

Si logra abrirlo, entonces nadie esta trabajando en red. Si no, me produce un ERROR y no se abre.

Debe hacerse una rutina que compuebe justamente este error y que retorne a la misma funcion con algun mensaje ("cierre todos los usuarios antes de continuar")

lo siguiente es lo que tengo en mi programa

FUNCTION F_ERROR
DO CASE
CASE pubnRutina=1 AND ERROR()=1705 &&Para comprobar si la tabla centinela esta usando por otro
publLibre=.F.
RETURN
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