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: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 1912
- 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: 1912
- 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: 3107
- 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: 3107
- 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: 3107
- 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'!!