Error DBFNTX/1010 Read error (DOS Error 5)
Moderador: Moderadores
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
Error DBFNTX/1010 Read error (DOS Error 5)
este erro não é frequente...
e esta dando hora ou outra em seguintes linhas:
.....
return TYPE("EMPTER->QUAL") <> "U"
.........
EMP->(Dbgotop())
já verifiquei c arquivo esta danificado!! criei novo índice apagando o atual antes!!
algum amigo já passou por isso?
e esta dando hora ou outra em seguintes linhas:
.....
return TYPE("EMPTER->QUAL") <> "U"
.........
EMP->(Dbgotop())
já verifiquei c arquivo esta danificado!! criei novo índice apagando o atual antes!!
algum amigo já passou por isso?
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Error DBFNTX/1010 Read error (DOS Error 5)
DOS Error 5 é acesso bloqueado, e o erro é do sistema operacional - D.O.S.
À primeira vista não tem a ver com a linha do fonte.
Em todo caso, acho estranho usar Type() pra campo de arquivo.
Se o Clipper não tiver FieldNum(), crie uma rotina pra isso.
Por exemplo: (precisa testar se funciona no Clipper)
À primeira vista não tem a ver com a linha do fonte.
Em todo caso, acho estranho usar Type() pra campo de arquivo.
Se o Clipper não tiver FieldNum(), crie uma rotina pra isso.
Por exemplo: (precisa testar se funciona no Clipper)
Código: Selecionar todos
#include "directry.ch"
? Empter->( FieldExist( "QUAL" ) )
? Empter->( FieldExist2( "QUAL" ) )
FUNCTION FieldExist( cField )
LOCAL nCont, lExiste := .F.
cField := Upper( cField )
FOR nCont = 1 TO FCount()
IF FieldName( nCont ) == cField
lExiste := .T.
EXIT
ENDIF
NEXT
RETURN lExiste
FUNCTION FieldExist2( cField )
RETURN AScan( dbStruct(), { | a | a[ F_NAME ] == Upper( cField ) } ) != 0
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
Error DBFNTX/1010 Read error (DOS Error 5)
tem como resolver para evitar esse erro?JoséQuintas escreveu:DOS Error 5 é acesso bloqueado, e o erro é do sistema operacional - D.O.S.
À primeira vista não tem a ver com a linha do fonte.
Obs: apos eu criar uma "EXIT PROCEDURE FIM()" estou gravando a tela de erro, ai foi q constatei esse erro!!
essa função c eu não me engano foi uns de seus help que vc passou para mim! Funcionou tao bem q uso ela para 'tudo'!!JoséQuintas escreveu:Em todo caso, acho estranho usar Type() pra campo de arquivo.
Se o Clipper não tiver FieldNum(), crie uma rotina pra isso.
Código: Selecionar todos
function ExisteVar(cName)
return TYPE(cName) <> "U"- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
Error DBFNTX/1010 Read error (DOS Error 5)
bom dia..
hoje ja deu nessas linhas:
e
obs:o mesmo arquivo.
hoje ja deu nessas linhas:
Código: Selecionar todos
use &nomarq. new alias &aliarq. via DBFNTX &&<-----essa linha q deu erro
If neterr() == .t.
.....
endifCódigo: Selecionar todos
EMP->(Dbsetorder(03))
EMP->(Dbgotop()) &&<-----essa linha q deu erro-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Error DBFNTX/1010 Read error (DOS Error 5)
Código: Selecionar todos
IF UPPER(e:Description) = "LOCK REQUIRED" .OR. ;
UPPER(e:Description) = "TRAVAMENTO REQUERIDO" .OR. ;
UPPER(e:Description) = "FALHA NO TRAVAMENTO" .OR. ;
UPPER(e:Description) = "FALHA NO TRAVAMENTO DO APPEND" .OR. ;
UPPER(e:Description) = "USO EXCLUSIVO REQUERIDO" .OR. ;
UPPER(e:Description) = "Erro DBFCDX/1002 erro ao Abrir" .OR. ;
UPPER(e:Description) = "Erro DBFCDX/1002 erro Open (DOS Erro 2)" .OR. ;
UPPER(e:Description) = "Error DBFCDX/1002 Open error" .OR.;
UPPER(e:Description) = "Error DBFCDX/1002 Open error (DOS Error 2)" .OR.;
UPPER(e:Description) = "(DOS Error 2) DBFCDX/1002 ERRO DE ABERTURA" .OR.;
UPPER(e:Description) = "Erro DBFCDX/1001 erro ao Abrir" .OR.;
UPPER(e:Description) = "Erro DBFCDX/1001 erro Open (DOS Erro 2)" .OR.;
UPPER(e:Description) = "Error DBFCDX/1001 Open error" .OR.;
UPPER(e:Description) = "Error DBFCDX/1001 Open error (DOS Error 2)" .OR.;
UPPER(e:Description) = "(DOS ERROR 2) DBFCDX/1001 ERRO DE ABERTURA" .OR.;
UPPER(e:Description) = "(DOS ERROR 2) DBFCDX/1001 Open Error" .OR.;
UPPER(e:Description) = "Error DBFCDX/1201 WORKAREA NOT INDEXED" .OR.;
UPPER(e:Description) = "ERROR DBFCDX/1201 WORKAREA NÇO INDEXADA" .OR.;
UPPER(e:Description) = "Error DBFCDX/1012 Corruption detected" .OR.;
UPPER(e:Description) = "ERROR DBFCDX/1012 CORRUPTION DETECTED" .OR.;
UPPER(e:Description) = "Error DBFCDX/1210 Corruption detected" .OR.;
UPPER(e:Description) = "ERROR DBFCDX/1210 CORRUPTION DETECTED" .OR.;
UPPER(e:Description) = "(DOS ERROR 64) DBFCDX/1010 ERRO DE LEITURA".OR.;
UPPER(e:Description) = "(DOS ERROR 64) DBFCDX/1010 READ ERROR" .OR.;
UPPER(e:Description) = "(DOS ERROR 87) DBFCDX/1010 ERRO DE LEITURA".OR.;
UPPER(e:Description) = "(DOS ERROR 87) DBFCDX/1010 READ ERROR" .OR.;
UPPER(e:Description) = "(DOS Error 2) DBFCDX/1001 ERRO DE ABERTURA"
MsgInfo( OemToAnsi( "ATEN€ÇO USUµRIO: " )+CRLF+ ;
OemToAnsi( "O PROGRAMA " )+CRLF+ ;
OemToAnsi( "DETECTOU PROBLEMAS NA ABERTURA DA REDE." )+CRLF+ ;
OemToAnsi( " " )+CRLF+ ;
OemToAnsi( "DESCRIۂO: "+UPPER(e:Description) )+CRLF+ ;
OemToAnsi( "ÖNDICE...: "+LEFT(RIGHT(e:FileName,12),8)+".CDX" )+CRLF+ ;
OemToAnsi( " " )+CRLF+ ;
OemToAnsi( "SAIA E ENTRE " )+CRLF+ ;
OemToAnsi( "NOS PAR¶METROS E REINDEXE " )+CRLF+ ;
OemToAnsi( "TODOS OS BANCOS DE DADOS " )+CRLF+ ;
OemToAnsi( "ISTO UM AVISO DE ALGUM PROBLEMA. " )+CRLF+ ;
OemToAnsi( "SE PERSISTIR ESTE ERRO, RECOMENDAMOS, " )+CRLF+ ;
OemToAnsi( "CHAMAR SEU TCNICO DE INFORMµTICA E " )+CRLF+ ;
OemToAnsi( "PEDIR PARA ELE VER SUA PLACA DE REDE, " )+CRLF+ ;
OemToAnsi( "BEM COMO SEUS PENTES DE MEMàRIA E O " )+CRLF+ ;
OemToAnsi( "CABO DE REDE DE SEU COMPUTADOR. " )+CRLF+ ;
OemToAnsi( "TECLE <ENTER> PARA CONTINUAR... " ), ;
OemToAnsi( "Possivel Problema na Sua Rede/Micro. " ) )
ENDIF
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
Error DBFNTX/1010 Read error (DOS Error 5)
usando o ErrorBlock() em linha ouKapiaba escreveu:
Código: Selecionar todos
Procedure ErrorSys()
ErrorBlock( {|e| DefError(e)} )
return .t.-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Error DBFNTX/1010 Read error (DOS Error 5)
Desculpe não posso ajudá-lo neste ponto, já que o meu ERRSYSW.PRG é for windows(fivewin), terás que tentar simular com o seu ERRORSYS.PRG ou pedir ajuda para quem usa MODO CONSOLE. Abs.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Error DBFNTX/1010 Read error (DOS Error 5)
Olá!
DOS Error 5 é Sharing Violation ou violação de compartilhamento. Ocorre quando há acesso concorrente de mais de um usuário à mesma tabela.
Veja a sintaxe do comando USE
Altere seu código e aproveite para retirar estes operadores macro que degradam a performance e aumentam o tamanho do executável:
DOS Error 5 é Sharing Violation ou violação de compartilhamento. Ocorre quando há acesso concorrente de mais de um usuário à mesma tabela.
A causa provável dos teus problemas é que você não especifica se o modo de abertura da tabela é exclusivo ou compartilhado. Assim sendo, é aplicado o SET EXCLUSIVE configurado. Se não existir esta configuração, o arquivo é aberto em modo EXCLUSIVE, que é o default.juniorcamilo escreveu:1 use &nomarq. new alias &aliarq. via DBFNTX &&<-----essa linha q deu erro
Veja a sintaxe do comando USE
USE
Open an existing database (.dbf) and its associated files
------------------------------------------------------------------------------
Syntax
USE [<xcDatabase>
[INDEX <xcIndex list>]
[ALIAS <xcAlias>] [EXCLUSIVE | SHARED]
[NEW] [READONLY]
[VIA <cDriver>]]
Altere seu código e aproveite para retirar estes operadores macro que degradam a performance e aumentam o tamanho do executável:
Código: Selecionar todos
use ( nomarq ) new alias ( aliarq ) SHARED via DBFNTX
ou
use ( nomarq ) new alias ( aliarq ) EXCLUSIVEAcho que o Quintas quis se referir à função FieldPos().JoséQuintas escreveu:Se o Clipper não tiver FieldNum(), crie uma rotina pra isso.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
Error DBFNTX/1010 Read error (DOS Error 5)
realmente não estava definindo SHARED!! alterei e vou testar!!!alxsts escreveu: Veja a sintaxe do comando USE
é uma função de abertura geral para meus DBF!!vou mante-la!!Altere seu código e aproveite para retirar estes operadores macro que degradam a performance e aumentam o tamanho do executável:
obrigado!!!
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Error DBFNTX/1010 Read error (DOS Error 5)
Olá!
Ok mas não precisa usar macro operador. É só envolver as variáveis que contem os nomes do arquivo e seu alias em parêntesis, como mostrei:
Ok mas não precisa usar macro operador. É só envolver as variáveis que contem os nomes do arquivo e seu alias em parêntesis, como mostrei:
Código: Selecionar todos
Function AbreArq( nomarq, aliarq, lShared )
If lShared
use ( nomarq ) new alias ( aliarq ) SHARED via DBFNTX
else
use ( nomarq ) new alias ( aliarq ) EXCLUSIVE via DBFNTX
endif[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
Error DBFNTX/1010 Read error (DOS Error 5)
"morro e não aprendo tudo mesmo!!!"alxsts escreveu:Olá!
Ok mas não precisa usar macro operador. É só envolver as variáveis que contem os nomes do arquivo e seu alias em parêntesis, como mostrei:
Obrigado mais uma vez não sabia q era possível!!!
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Error DBFNTX/1010 Read error (DOS Error 5)
Olá!
Este post pode agregar algumas coisas. Procure nele uma função chamada NetUse(). Se você tem a instalação padrão do Clipper 5.xx, é capaz de tê-la instalada em sua máquina. Fica em um arquivo chamado Locks.Prg.
Este post pode agregar algumas coisas. Procure nele uma função chamada NetUse(). Se você tem a instalação padrão do Clipper 5.xx, é capaz de tê-la instalada em sua máquina. Fica em um arquivo chamado Locks.Prg.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
Error DBFNTX/1010 Read error (DOS Error 5)
amigos ...
acredito q foi uma falta de atenção por minha parte...
em certo local dos meus fontes descobri a falta de um 'unlock'!!
acredito q foi uma falta de atenção por minha parte...
em certo local dos meus fontes descobri a falta de um 'unlock'!!