Ambiente multiusuario, ayuda urgente

Hola, tengo un sistema en ambiente monousuario, en el cual por necesidades es necesario cambiarlo a multiusuario con urgencia, pero no se por donde empezar, ya leí acerca de instrucciones para ambiente multiusuario, como cursorsetprop, set multilocks, etc, en algunas cosas estoy un poco confundida. Mi problema son:
1- Como direcciono para que en la terminal lea los datos que están en el servidor.
2- ¿En necesario usar lo que son vistas remotas?
Si me podrías auxuliar e indicar el camino a seguir te lo agradecería mucho, y si no es mucha molestia para no darte tanta lata si me podrías mandar algún programa que sea en este ambiente que para mi es nuevo.
Gracias de antemano
mi correo es [email protected]
Respuesta
1
Si trabajas en VFP, no te hagas tantos problemas, ya que VFP bloquea y desbloquea automáticamente cada vez que hay que grabar o actualizar una tabla y/o registro.
Coloca estas lineas en tu programa principal.
SET REPR TO 5
SET MULTI ON
SET EXCL OFF
Y Abres tu Base de datos compartida (SHARED).
En muy raros casos sera necesario usar FLOCK y/o RLOCK.
Bueno espero te sirva un poco.
Mi dirección es [email protected]
Suerte.
gracias primero que todo por contestarme tan rapido. Pero eso si lo entiendo lo de poner SET MULTI, SET REPR Y SET EXCLU, pero tengo otras dos preguntas
1- Es necesario poner código para controlar los conflictos que pueda existir al momento de grabar en las tablas, como que otro usuario esta usando el registro o el registro no se puede bloquaer, etc. O todo lo hace visual fox. Lo que pasa es que estaba leyendo el msdn y eso me explica que tengo que poner rutina para controlar conflictos que pudieran suceder.
2- No me imagino como hacerle para que la terminal pueda acceder a las tablas que esta en el servidor, tengo que poner alguna instrucción para direccionar de la maquina del cliente al servidor o como le hago.
Todo lo hace VFP, quien bloquea y desbloquea al momento de hacer un append blank o un replace.
Ahora bien, podrías utilizar algunos comandos de bloqueo, para mayor seguridad. Por ej.
Supone una tabla de clientes. Se dan altas desde diferentes terminales. Yo hago el form. Y trabajo sobre cajas de texto, en variables, y al momento de grabar, hago lo siguiente:
select clientes
set order to codigo
IF FLOCK()
ELSE
DO WHILE .NOT. FLOCK()
WAIT 'UN MOMENTO, ARCHIVO BLOQUEADO' WINDOWS NOWAIT
ENDDO
IF FLOCK()
ENDIF
ENDIF
seek thisform.text1.value
if !found()
append blan
endif
replace codigo with thisform.text1.value
replace nombre with thisform.text2.value
Unlock all
Este es un ejemplo sencillo, pero más o menos esta es la idea.
Espero te sirva. Mucha Suerte.
Roberto Tello.
San Juan-Argentina
Yo hago lo siguiente. En una red windows, en mi servidor, hago este comando en el autoexec.bat:
SUBST F: C:\
Esto me hace un espejo de mi unidad C.
En donde F es la unidad compartida en red.
Luego en cada terminal, hago conectar a unidad de red F de mi servidor.
El acceso directo se hace así:
C:\VFP\VFP.EXE -T F:\ruta\ejecutable
Claro que en el disco C de c/terminal esta visual fox instalado en la carpeta VFP.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas