RLOCK()

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

RLOCK()

Mensagem por Eolo »

Meio por curiosidade, alguém sabe dizer como o xHarbour bloqueia registros de um DBF quando se usa DBRLOCK() ou RLOCK()? Eu imagino que seja gravado alguma coisa no DBF, para que outros usuários da rede consigam saber do bloqueio... É isso ou é de outra forma?

Também, se eu fechar um DBF sem usar o DBRUNLOCK() ou UNLOCK, como ficam os registros bloqueados? O xHarbour libera todos? E se o EXE for terminado por exemplo por falta de luz, como ficam os registros que estavam bloqueados? Eles são liberados na próxima vez que o DBF for aberto pelo mesmo usuário?
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: RLOCK()

Mensagem por Maligno »

Deve ser como é no próprio Clipper, que bloqueia registros com a ajuda do SO, não registros mas "pedaços" do arquivo, que tem tamanho e posição do registro calculados pela aplicação. Na medida em que o programa aborta, o SO libera qualquer lock pendente que esteja associado ao handle da aplicação abortada.

Claro que isso só vale para bancos de dados de acesso local. Em tecnologia cliente/servidor isso tudo é feito pelo servidor do banco de dados.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder