Página 1 de 1
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 13 Mar 2017 16:27
por juniorcamilo
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?
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 13 Mar 2017 21:29
por JoséQuintas
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)
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
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 14 Mar 2017 07:47
por juniorcamilo
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.
tem como resolver para evitar esse erro?
Obs: apos eu criar uma "EXIT PROCEDURE FIM()" estou gravando a tela de erro, ai foi q constatei esse erro!!
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.
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'!!
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 14 Mar 2017 09:27
por juniorcamilo
bom dia..
hoje ja deu nessas linhas:
Código: Selecionar todos
use &nomarq. new alias &aliarq. via DBFNTX &&<-----essa linha q deu erro
If neterr() == .t.
.....
endif
e
Código: Selecionar todos
EMP->(Dbsetorder(03))
EMP->(Dbgotop()) &&<-----essa linha q deu erro
obs:o mesmo arquivo.
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 14 Mar 2017 09:39
por Kapiaba
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
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 14 Mar 2017 11:58
por juniorcamilo
Kapiaba escreveu:
usando o ErrorBlock() em linha ou
Código: Selecionar todos
Procedure ErrorSys()
ErrorBlock( {|e| DefError(e)} )
return .t.
?
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 14 Mar 2017 15:05
por Kapiaba
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.
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 14 Mar 2017 15:06
por Kapiaba
CORROMPA(Adulterar) um indice.cdx e vá testando.
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 14 Mar 2017 15:11
por alxsts
Olá!
DOS Error 5 é
Sharing Violation ou violação de compartilhamento. Ocorre quando há acesso concorrente de mais de um usuário à mesma tabela.
juniorcamilo escreveu:1 use &nomarq. new alias &aliarq. via DBFNTX &&<-----essa linha q deu erro
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.
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 ) EXCLUSIVE
JoséQuintas escreveu:Se o Clipper não tiver FieldNum(), crie uma rotina pra isso.
Acho que o Quintas quis se referir à função
FieldPos().
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 14 Mar 2017 16:07
por Kapiaba
Verifique também se os índices não estão corrompidos.
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 14 Mar 2017 16:07
por juniorcamilo
alxsts escreveu: Veja a sintaxe do comando USE
realmente não estava definindo SHARED!! alterei e vou testar!!!
Altere seu código e aproveite para retirar estes operadores macro que degradam a performance e aumentam o tamanho do executável:
é uma função de abertura geral para meus DBF!!vou mante-la!!
obrigado!!!
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 14 Mar 2017 16:16
por alxsts
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:
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
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 14 Mar 2017 16:22
por juniorcamilo
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:
"morro e não aprendo tudo mesmo!!!"
Obrigado mais uma vez não sabia q era possível!!!
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 14 Mar 2017 16:37
por alxsts
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.
Error DBFNTX/1010 Read error (DOS Error 5)
Enviado: 17 Mar 2017 10:16
por juniorcamilo
amigos ...
acredito q foi uma falta de atenção por minha parte...
em certo local dos meus fontes descobri a falta de um 'unlock'!!