La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1414 - PROGRAMACIÓN EN RED CLIPPER 5.2
Autor:  Edward Ferreira Yong
Mis buenos amigos :

Recurro a Uds. ya que soy novel programador en Clipper y deseo programar o elaborar programas para redes, lo cual desconozco, por lo que apreciaría vuestra ayuda con ejemplos.

Gracias de antemano amigos y saludos desde Perú.


  Respuesta:  Luis Miguel Caballero
Hola. Si quieres un ejemplo o más detalle, escribeme, yo también soy de Perú y trabajé hace mucho tiempo con Clipper y por allí tengo algunas cosas que pueden serte útiles.

  Respuesta:  Gerardo A. Mendoza
Hola disculpa que escriba hasta ahora. Pero mira la programción en red, obviamente se trata de accesos multiples. Sobre todo a las bases de datos, por lo que tienes que considerar varias cosas. Clipper dispone de funciones para este manejo como son abrir en forma compartidad las tablas (.dbf) con el comando USE. Los índices asociados se abren de acuerdo a la forma en que se abrió la tabla. También dispones de la funciones RLock() para bloquear un registro y la función FLock() para bloquear toda la tabla. DBUnLock() (UnLock) para liberar el bloqueo de registro(s) o tablas y DBUnLockAll() (UnLock All) para liberar todos los bloqueos de todas tus tablas. Cuando agregas un registro DBAppend() (Append Blank) automáticamente bloqueas el nuevo registro y después lo debes desbloquear. La función NetErr() para verificar si no hubo errores al abrir una tabla (Use) o agregar registros (Append Blank). Cundo programas para red si tienes que realizar una transacción, actualizar varias tablas, lo más conveniente es disponer de todos los recursos y proceder a actualizar. Te recomiendo que revises la documentación de estas funciones y que revises un programa de ejemplo que viene con Clipper que se llama Locks.prg (me parece). Si tienes más dudas mandame un mail, lo que pasa es que me llego tu pregunta pero cambie de computadora y fue tarde cuando quise recuperar mi lista de contactos.

  Respuesta:  Carlos Christian Molina Vega
HOLA!

Para programar en RED en clipper debes tomar en cuenta lo sgte:

LAS DBF, INDICES, APLICACIONES, etc

van a ser compartidas por muchas personas.
Por lo al principio de la aplicacion hay que escribir: SET EXCLUSIVE OFF

en una misma dbf, 2 o mas personas pueden ingresar al mismo registro!

Por lo que si vas a modificar el registro o agregas uno nuevo, debes BLOQUEARLO

RLOCK() Es la funcion que incluye CLipper para este efecto!

DEspues de hacerle cualquier cambio, hay que desbloquearlo UNLOCK, asi lo puede accesar otra persona!

Tambien se debe hacer con las sgtes funciones

RECALL, DELETE, REPLACE

Acuerdate de validar, que si no puede bloquear el registro, que espere o que intente despues!!!

Por ultimo al hacer un PACK a la base, esta se debe abrir en forma exclusiva, lo que no es posible si hay otra persona usandola en forma compartida!

SET EXCLUSIVE ON EXCLUSIVA
SET EXCLUSIVE OFF COMPARTIDA

RLOCK() devuelve T si bloquea el registro actual, si no devuelve F

UNLOCK desbloquea. Si tratas de desbloquear un registro que no estaba bloqueado, el programa generara un error!

Cualquier otra duda, escribeme un e-mail