verificar se registro está bloqueado.

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Tem casos que é necessário que exista uma sequência de CÓDIGOS, por exemplo os números dos DVDs numa locadora. Claro que esporádicamente o acervo sofre exclusões. Mas eu acostumo RECUPERAR esse número pois senão a prateleira onde guarda seus filmes, ficaria fora de sequência (que nem um queijo Suiço... uhmmmm).

Para esses casos, tem que ser feito um SEQUENCE.DBF que tem como campos INICIO (N5) FIM (N5) e a medida que é deletado o filme CODIGO 00001 pego esse número e faço um APPEND no SEQUENCE. Daí o próximo número a ser pego (quando tem que cadastrar novo filmes) irá pegar o número menor que tiver disponível. Claro que o SEQUENCE.DBF é necessário indexar. Mas ele fica pequeno, pois muitas vezes pode ser re-composto os registros: 00001 até 00019 (por exemplo.

Mas respondendo LITERALMENTE a sua pergunta, caro MATRIX:
matrix escreveu:como identifico se o registro está bloqueado (Rlock) ???
Simplesmente faça uma tentativa de utilizar NOVAMENTE o RLOCK(), se ele estive RELOCKeado (puxa meu português... é fogo), retornará .F.

Claro, estamos falando de que você irá precisar o RLOCK() para o caso de usar o SEQUENCE.DBF. Porque não creio que alguém aqui concorde da forma que você mencionou (você disse: pegará o contador ultimo +1)

Um clip-abraço :)Pos
Responder