La programacion en red en clipper es muy sencilla.
Para empezar tienes que añadir a tu programa la instruccion
SET EXCLUSIVE OFF
De esta manera todas las bases de datos se abriran en modo compartido, y puedes abrirlas por mas de un usuario.
Despues antes de hacer cualquier escritura en la base de datos tienes que preguntar por la funcion
Rlock() que intentar bloquear el registro y devuelve True si lo consigue y False en caso contrario.
Ej. para modificar la ficha de un cliente con codigo 9376222L
escribo:
Use clientes index codigo
dbseek("9376222L")
If Found ()
If Rlock() //Intenta bloquear el registro
// Lo consigue y por tanto yo puedo escribir
replace nombre with "PEDRO JOSE LOPEZ"
......
......
dbCommit () // Como las escrituras quedan en un buffer, tengo que forzar que se graben en el disco para que inmediatamente sean vistas por otros usuarios
else
// No consigue bloquear el registro y por
// tanto muestro mensaje de error
@10,10 say "La ficha esta en uso por otro usuario"
endif
end if
El registro se desbloquea cuando acceda a otro registro.
Si se trata de grabar un registro nuevo procedo del mismo modo
Append Blank
If Rlock()
replace ........
........
dbcommit()
end if
Ten en cuenta que si bloqueas un registro has de preocuparte de que el usuario no lo deje bloqueado indefinidamente.
Por ultimo si necesitas reindexar o hacer cualquier operacion con la base de datos completa utilizas la funcion Flock () que b