FoxPro/Visual FoxPro - Detectar y Avisar Tabla en Uso

 
Vista:

Detectar y Avisar Tabla en Uso

Publicado por Santiago (44 intervenciones) el 23/07/2004 15:22:50
Amigos :
Queria pedirles si alguno conoce o tiene alguna rutina que Detecte y avise al Usuario en entorno multiusuario antes de Hacer el Backup si alguna TABLA esta en uso del total de tablas del sistema...
Y si ademas cabiera la posibilidad de saber que usuario sigue en el sistema y mandarle un aviso.
Espero sus respuestas y/o comentarios sobre el tema...
Saludos,
Santiago
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

RE:Detectar y Avisar Tabla en Uso

Publicado por Roman Suazo (2723 intervenciones) el 23/07/2004 16:36:51
Lo que debes hacer es tratar de abrir la tabla en forma EXCLUSIVA, si no puedes es que esta siendo utilizada por alguien mas...si la abres exclusivamente puedes poner un valor en archivo cualquier indicando que se esta realizando un backup, cierras la tabla, una vez que se termine el backup, cambias el valor al estado orginal indicandole a los usuarios que pueden abrir la tabla, es decir, mientras se este haciendo el backup nadie podria abrir las tablas o formas.

El chiste es que debes manejar tablas extras para manejar lo que quieres, por ejemplo, cada vez que abras una tabla se registra en archivo cuando se abrio, quien la abrio, y cuandos se cerro, asi puedes llevar el control...

Para mandar mensajes hay dos formas: winsock y timer. Con el winsock ya tendrias que estudiar ese control para realizar lo que quieres. Con el timer lo que haces es que lees
una tabla o archivo cada cierto tiempo, segun los valores que lea se le mostrara un mensaje al usuario, es decir, cada usuario tendria un timer leyendo el archvio para ver
si hay mensajes para el.
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

RE:Detectar y Avisar Tabla en Uso

Publicado por Oz Fox (15 intervenciones) el 23/07/2004 18:56:33
Roman, que tal amigo, podrías enviarme un ejemplo para así poder guiarme, por favor.

Saludos
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

RE:Detectar y Avisar Tabla en Uso

Publicado por JIMJE (40 intervenciones) el 23/07/2004 22:51:08
Puedes usar la funcion
IFUSED('nomb_tabla')
te da verdadero si esta en uso
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

RE:Detectar y Avisar Tabla en Uso

Publicado por Oz Fox (15 intervenciones) el 27/07/2004 00:28:28
Perfecto.
Si estoy en el entorno multiusuario, como hago para cerrarle el set exclusive off y abrirla como set exclusive on, por ejemplo, el usuario fue a tomar cafe pero yo necisto respaldar, como le cierro la tabla o el programa para que desde el servidor abrir la tabla en modo exclisive on.

Saludos

Oz Fox
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

RE:Detectar y Avisar Tabla en Uso

Publicado por Martín (9 intervenciones) el 05/08/2004 22:41:53
No, la anterior explicación no sirve. La función USED() sirve para saber si esa tabla está abierta EN OTRA ÁREA D TRABAJO d tu misma sesión d datos. Si la tabla la tiene abierta otro usuario y no vos, la función USED() t va a devolver .F. pero la tabla va a estar abierta y va a impedir el backup.

Con respecto a cómo saberlo... bien, la manera es la q' t explicó Román, ni + ni -. Tendrías q' ir grabando 1 registro en DBF para saber q' usuarios fueron abriendo y cerrando sesiones, para saber quién t queda adentro. El problema d hacer algo así, es justamente lo contrario del problema q' tenés ahora, o sea, q' a algún usuario c le cuelgue la PC, entonces, al resetearla, q' el sistema NO REGISTRE la salida anterior d este usuario (dado q' fue 1 salida anormal) y, x lo tanto, q' en la tabla t quede registrado q' el usuario todavía está adentro.

Quizás la manera ideal d hacer algo como lo q' querés, no es tanto ocuparse d si los usuarios están dentro o fuera del sistema, sino hacer algún tipo d proceso d backup d tu sistema q' contemple ejecutarse AÚN CON USUARIOS TRABAJANDO ;)

Yo tengo hecho algo x el estilo. Cualquier cosa, si t interesa esta alternativa, t tiro + pistas.

Saludos.

Martín
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