testar se arquivo dbf ja esta sendo usado...help

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

scom
Usuário Nível 3
Usuário Nível 3
Mensagens: 133
Registrado em: 15 Nov 2004 10:49
Localização: Dourados/MS

testar se arquivo dbf ja esta sendo usado...help

Mensagem por scom »

ola amigos..


é o seguinte tenho um arquivo dbf que eu só quero usar ele exclusive e queria testar se ele ja esta em uso antes do comando USE e dar uma mensagem para o usuário tipo: O ARQUIVO ESTA EM USO.

se alguem souber como eu posso fazer isso.

atenciosamente

robson
S COM INFORMÁTICA
CLIPPER 5.3 / FIVEWIN 2.0 / BLINKER 7
XHARBOUR/ BCC582
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 »

Oi Robson,

Eu acostumo fazer assim:

Código: Selecionar todos

    SELE 2
    USE ("SPC.DBF") EXCLUSIVE 
    ENQUANTO=NETERR()
    DO WHILE ENQUANTO=.T.
       BEEP()
       BEEP()
       BEEP()
       ALERT("Para efetivar atualização, solicite pro outro terminal sair;para a tela principal e aguarde a liberação.;;Confirme quando for OK.")
       SELE 2
       USE ("SPC.DBF") EXCLUSIVE
       ENQUANTO=NETERR()
    ENDDO
    MEMOWRIT("EXCLUSIVO.SPC","")
    CLOSE 2
    COPY FILE("C:SPC.DBF") TO ("SPC.DBF")
    DELETE FILE("C:SPC.DBF")
    DELETE FILE("EXCLUSIVO.SPC")
Eu tenho um arquivo SPC.DBF que grava no C: de um determinado terminal (não do servidor de rede) e para atualizar o arquivo faço esse procedimento. Nessa hora (talvez as vezes dependendo o tamanho, poderia demorar, então quando os outras estações intentarem abrir o arquivo SPC.DBF do servidor, irá verificar se não existe antes o arquivo EXCLUSIVO.SPC. Que me serve como semáforo (vamos dizer assim) para que não seja aberto em modo compartilhado até que não termine de copiar. É mais uma precaução.

Espero ter ajudado. Um clip-abraço :)Pos
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

O uso exclusivo do arquivo falhará se o arquivo já estiver em uso exclusivo, compartilhado ou somente leitura(?). Essa última condição eu nunca testei.
Então, basta testar o retorno da função Neterr().

MarceloG
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 »

Isso mesmo Marcelo, funciona em todos os modos em que é aberto o DBF. E geralmente não é tanto a espera dos outros terminais. Ao final de contas é´muito útil para fazer atualizações dos BDs ONLINE.
Responder