Mensagem de erro na abertura de arquivo usando Blinker 7

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

SandroBelarmino
Usuário Nível 3
Usuário Nível 3
Mensagens: 464
Registrado em: 04 Set 2007 16:11
Localização: Pedreira-SP

Mensagem de erro na abertura de arquivo usando Blinker 7

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

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.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

eu só uso mode exclusivo para indexar e dar pack...
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
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 »

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
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
SandroBelarmino
Usuário Nível 3
Usuário Nível 3
Mensagens: 464
Registrado em: 04 Set 2007 16:11
Localização: Pedreira-SP

Mensagem 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).
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 »

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.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

...
Editado pela última vez por sygecom em 11 Mar 2008 03:18, em um total de 1 vez.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Mensagem de erro na abertura de arquivo usando Blinker 7

Mensagem 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.
[]'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!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'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