Página 1 de 1
Mensagem de erro na abertura de arquivo usando Blinker 7
Enviado: 04 Mar 2008 14:55
por SandroBelarmino
Passei a usar o Blinker 7 em alguns programas meu, porém estou tendo o seguinte problema, na minha função de abertura de arquivo, quando tendo abrir um dbf no modo exclusivo, está dando erro DBFNTX/1001, DOS ERROR 5, que é acesso negado, quando já tem alguem usando o arquivo. Sendo que quando eu linko com o Rtlink, nao aparece esse erro, e consigo fazer o tratamento dentro da minha funcao, retornando para o usuario que o arquivo nao pode ser aberto no modo exclusivo.
Como posso resolver isso ?? Pois esses programas nao estou mais conseguindo fazer rodar com o Rtlink por problemas de memória.
Grato.
Sandro
Enviado: 04 Mar 2008 19:48
por Pablo César
Caro Sandro,
Seja linkado com RTLINK ou BLINKER a abertura em modo EXCLUSIVO do DBF será dado apenas uma única vez com sucesso. Você deve saber que isto não é recomendado fazer quando o sistema está em rede. Não sei qual é a sua necessidade de abertura em modo exclusivo, mas de qualquer forma você precisaria criar um procedimento "semáforo" que avise ao usuário que fulano de tal está usando tal coisa. Eu fiz o seguinte teste:
USE CLIENTES EXCLUSIVE
INKEY(0)
E compilei com opção /B para acompanhar com o CLD (debugger do Clipper) e o resultado após a segunda execução foi que não conseguiu abrir o arquivo, dá "AREA NOT IN USE". Então sugiro que o colega mude seu aplicativo incorporando funções de tratamento para modo COMPARTILHADO e se precisar fazer alguma operação que seja em modo exclusivo faça uma cópia do DBF no local "C:" e trabalhe alí de forma temporária.
Enviado: 05 Mar 2008 00:39
por Luciano Bonfim
eu só uso mode exclusivo para indexar e dar pack...
Enviado: 05 Mar 2008 16:38
por Pablo César
Eu também uso quando o sistema precisa indexar. E faço a indexação atrelada ao protetor de telas. É dizer faço a indexação quando o sistema está ocioso. De todas formas, sempre é conveniente fazer um semáforo para essas operações. Uma checagem simples e que funciona quando se quer o uso modo exclusivo é:
Código: Selecionar todos
SELE 1
USE ("ARQUIVO.DBF") EXCLUSIVE
ENQUANTO=NETERR()
DO WHILE ENQUANTO=.T.
BEEP()
BEEP()
BEEP()
ALERT("Para proseguir, solicite pro outro terminal do sistema e aguarde a liberacao;;Confirme quando for OK.")
SELE 1
USE ("ARQUIVO.DBF") EXCLUSIVE
ENQUANTO=NETERR()
ENDDO
Enviado: 07 Mar 2008 16:02
por SandroBelarmino
Pois é Pablo, eu so uso o modo exclusivo para indexar tambem,e já tenho a funcao para abrir o arquivo que verifica se a abertura ocorreu normal, usando a funcao neterr(), onde faço todo o tratamento, o problema é que depois que passei a usa o blinker, está me parecendo que o probrama nem chega à funcao neterr(), a impressão que da é que no comando use exclusive ele já acusa o erro (dos error 5).
Enviado: 07 Mar 2008 17:05
por Pablo César
acusa o erro (dos error 5)
Verifique o atributo do arquivo dbf que está tentando abrir. Muito provável que esteja com atributo +R ou como "somente leitura" (visto pelo Windows Explorer). Isso geralmente acontece quando é gracado de um CD e este esteja em este modo.
Enviado: 10 Mar 2008 23:29
por sygecom
...
Re: Mensagem de erro na abertura de arquivo usando Blinker 7
Enviado: 11 Mar 2008 00:11
por Maligno
SandroBelarmino escreveu:Passei a usar o Blinker 7 em alguns programas meu, porém estou tendo o seguinte problema, na minha função de abertura de arquivo, quando tendo abrir um dbf no modo exclusivo, está dando erro DBFNTX/1001, DOS ERROR 5
Eu já vi coisas muito estranhas acontecerem sem a menor pista. Também já vi soluções nada convencionais, que de fato resolveram, como por exemplo resintalação. Como não custa nada, você pode tentar reinstalar o BLinker, cuidando para instalar a versão full, como a do meu
site.
Enviado: 11 Mar 2008 00:13
por Maligno
Aliás, mostrar o código fonte não vai ajudar nada, haja vista que no RTLink funciona perfeitamente. Só foi trocado o linker. Mas você pode mostrar o script de linkedição usado no BLinker. Talvez haja alguma coisa fora do "encaixe". Mas o fonte em si não deve ter problema algum. Senão, não funcionaria no RTLink também.