Jump to content
Fivewin Brasil

Corrupção em arquivos FPT, como resolver?


Rogerio Figueira

Recommended Posts

Caros,

as vezes surge problema de corrupção em arquivos fpt (campo memo). Quando não tem conteúdo relevante, excluo o campo e crio novamente, zerando o arquivo fpt associado ao dbf.

Agora me surgiu um caso de um usuário que não pode excluir o conteúdo dos memos.

Já tentei copiar o dbf para novo arquivo (copy to...) não vai, tentei abrir com o OpenOffice, não abre.

Alguém conhece algum macete ou ferramenta para recuperar o dito cujo?

[]´s

Link to comment
Share on other sites

Caros, nada disso funcionou.

Eu já tinha tentado com o OurDbu, com o FiveDbu, atualizei agora o fivedbu, tentei com o DBFRecovery, com um programa meu que corta um trecho do arquivo e nada.

Parece que o FPT bixou de tal jeito que não consegue ser lido. O FiveDbu e o OurDbu até travam.

Paciência.

Vou verificar os backups do usuário e retornar os arquivos de uns dias atrás.

[]´s

Link to comment
Share on other sites

Rogério tive muitos problemas parecido com seu, as vezes um único registro causa um estrago, a solução que vou apresentar foi vai gravar vazio no campo que apresentar o problema, para isso uso velho TRY...CATCH.

Faça uma rotina em que abra o arquivo danificado e cria uma estrutura TEMP idêntica. lembre-se não pode ter arquivo index.

//Alias FILE: trata do arquivo danificado
DO WHILE !FILE->(EOF())
TEMP->(DBAPPEND())
FOR nCT:=1 TO FILE->(FCOUNT())
//rotina que tenta recuperar arquivo danificado
TRY
xVar := FILE->(FIELDGET(nCT))
CATCH //DEU ERRO MAS CONTINUA
IF FILE->(FieldType(nCT)) == "D"
xVar := CToD("")
ELSEIF FILE->(FieldType(nCT)) == "C"
xVar := ""
ELSEIF FILE->(FieldType(nCT)) == "N"
xVar := 0
ELSEIF FILE->(FieldType(nCT)) == "M"
xVar := ""
ELSEIF FILE->(FieldType(nCT)) == "L"
xVar := .F.
ENDIF
END
TEMP->(FIELDPUT(nCT,xVar)) //GRAVA
NEXT
FILE->(DBSKIP())
ENDDO
Esta rotina demora, vai depender da quantidade de registro, não use em rede, copie o DBF e FPT para uma pasta local.
Boa Sorte !!!
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...