Entrar
¿Nuevo usuario? Inscribirme
guvoaII · GUVOA Visual Object Español
? ¿Ya estás suscrito? Entra a Yahoo!

Consejos

¿Sabías que...?
Podés cambiar el orden de los mensajes. Simplemente hacé clic en el enlace de columna fecha. Tus preferencias se guardarán, por lo tanto no necesitarás hacerlo otra vez cuando vuelvas a entrar.

Mensajes

  Mensajes Ayuda
Avanzado
Metodo sugerido oara evitar el uso de un acceso de usuario concurren   Lista de mensajes  
Responder | Reenviar Mensaje #2757 de 2798 |

Hola:

Desde hace mucho tiempo se ha discutido un método para eviotar que mas de una
persona use un usuario autorizado concurrentemente.
El metodo comun es marcar un campo en la tabla de usuarios, pero eso produce
problemas si el programa termina anormalmente.

La idea mia es en el brazo principal de la aplicación,hacer SELECT FOR UPDATE en
el caso de SQL o RLOCK() en el caso de DBASE, y tratar de escribir. si no se
puede , el usuario esta ocupado, si se puede, no hacer commit ni liberar el
usuario sino al fin de la aplicacion.

El metodo lo he probado con MySQL y funciona, salvo qUe demora mucho haciendo
los intentos cuando el usuario esta ocupado.

oUsua:=sqlselect{'select * from '+ARC_USUA+' where Usuario="'+fU+'" FOR
update',oConn }
IF oUsua:reccount=0
oWin:oDCStatusMLE:ADDOK("Usted no esta autorizado a usar el Sistema
usuario:"+fu,.f.)
oUsua:close()
lCierro:=1=2
RETURN FALSE
ENDIF

BEGIN SEQUENCE
oUsuatest:=sqlstatement{'update cgdma07 set co_rreo="lolo" where
cu1="+fU',oConn}
oUsuatest:execute()
//NO SE HACE EL COMMIT
BREAK
RECOVER
IF oUsuatest:STATUS<>NULL_OBJECT
oWin:oDCStatusMLE:ADDOK("Ya hay una instancia de este
usuario:"+fu,.f.)
lCierro:=1=2
ENDIF
END

Entre otras cosas, no comprendo muy bien la clausula Begin sequence al aplicarla
a una secuencia en la cual en varios metodos se actualizan tablas, como en el
caso de facturacion.
Yo he optado por hacer un solo COMMIT en el brazo principal que llama al
proceso, pero no me parece muy tecnico.Los ejemplos de la guia de usuario no me
funcionan presumiblemente por la no definicion de algunas variables globales no
esoecificadas por los ejemplos.

Gracias

Edgardo Solano




Jue, 20 de Ago, 2009 3:52 pm

edgsun
Sin conexión Sin conexión
Enviar correo Enviar correo

Reenviar Mensaje #2757 de 2798 |
Desplegar mensajes Autor Ordenar por fecha

Hola: Desde hace mucho tiempo se ha discutido un método para eviotar que mas de una persona use un usuario autorizado concurrentemente. El metodo comun es...
edgsun
Sin conexión Enviar correo
20 de Ago, 2009
3:52 pm
Avanzado

Copyright © 2009 Yahoo! de Argentina S.R.L. Todos los derechos reservados.
Política de privacidad - Condiciones del Servicio - Reglas de la comunidad de Yahoo! - Ayuda