Página 1 de 1

DOS Error 38 Criando Indice

Enviado: 02 Mar 2012 07:13
por asimoes
Prezados,

Estou com este erro abaixo na criação de um indice na pasta c:\temp

A rotima que cria o indice é executada a cada 60 segundos, para verificar se o sistema entrará em manutenção.
O erro acontece na criação do indice. INDEX ON CODIGSIST TO (cDirTmp+"CODSISTEMA")

Isso está acontecendo somente em uma máquina de usuário.

Alguém já passou por este problema?

Código: Selecionar todos

   
cTemp:=GETENV("TEMP"), cTmp:=GETENV("TMP")
 __cDirTmp:=IF(!Empty(cTemp),cTemp,cTmp)+HB_PS()
IF !FILE(__cDirTmp+"CODSISTEMA.NTX")
   INDEX ON CODIGSIST TO (cDirTmp+"CODSISTEMA")
ELSE
   SET INDEX TO &__cDirTmp.CODSISTEMA.NTX
ENDIF
Error DBFNTX/1010 Erro de leitura: C:\TEMP\CODSISTEMA.ntx (DOS Error 38)
Called from ->ORDCREATE(0)
Called from ../../../rddord.prg->DBCREATEINDEX(0)

DOS Error 38 Criando Indice

Enviado: 02 Mar 2012 08:53
por Pablo César
Aqui no fórum ja aconteceu algo parecido, DOS Error 38, veja:

https://pctoledo.org/forum/viewto ... 566#p72417

Por acaso esse dbf tem campos memos ?

DOS Error 38 Criando Indice

Enviado: 02 Mar 2012 13:35
por asimoes
Olá Pablo,

O dbf não tem campo memo e não está corrompido.

DOS Error 38 Criando Indice

Enviado: 02 Mar 2012 15:44
por sygecom
Você consegue gerar outros índice nessa mesma pasta ?
Será que não é permissões de acesso na pasta ?

DOS Error 38 Criando Indice

Enviado: 02 Mar 2012 18:26
por asimoes
Olá Leonardo,

O indice é gerado na pasta c:\temp. O usuário tem permissão de leitura e gravação.
Eu até desconfiei disso, verifiquei a propriedade da pasta e deletei um arquivo sem problemas.
O interessante também é que o indice foi criado, mesmo apresentando o erro.
Fiz uma modificação hoje, agora que veridico no inicio antes entrar na rotina que fica em back, se o indice existe, caso exista o sistema deleta ele.
Quando a rotina de monitoramento entrar verifico se o indice existe na pasta, se não existir (primeira vez) o sistema criará o indice depois de criado, faço somente o set index para o indice.
Vou acompanhar isso.