Então, em todas as minhas rotinas, após REPLACE ... tem SKIP 0, UNLOCK.
Até aí tudo bem, mas tem situações aonde isso não é necessário.
Só relembrando antes:
"In a network environment, any record movement command, including SKIP, makes changes to the current work area visible to other applications if the current file is shared and the changes were made during an RLOCK(). To force an update to become visible without changing the current record position, use SKIP 0."
"Both FLOCK() and RLOCK() release the current lock before setting a new one"
Então podemos ter basicamente duas situações diferentes:
1 - Por exemplo alterar o cadastro de um cliente e continuar posicionado nele
Neste caso, melhor o SKIP 0 e UNLOCK, pra ficar visível pras demais estações
2 - Processamento seguido
Código: Selecionar todos
DO WHILE .NOT. Eof()
RLock()
REPLACE ...
SKIP
ENDDO
UNLOCK
Conclusão:
Talvez dê pra agilizar algumas rotinas, eliminando SKIP 0 e UNLOCK em determinadas situações.
Tem que pensar nestas três coisas:
- Enquanto o terminal que gravou no arquivo não fizer SKIP ou outra movimentação, não vai ficar visível em outro terminal
- Enquanto não bloquear um novo registro, o anterior não vai ser liberado
- Quanto tempo a rotina vai precisar pra deixar visível ou desbloqueado pra outros terminais.
Aproveitei pra compartilhar a "nova velha descoberta", que não tinha reparado antes.
Provavelmente consiga remover SKIP 0/UNLOCK de algumas rotinas.


