Página 1 de 1
OPERACAO NAO SUPORTADA
Enviado: 25 Nov 2011 13:19
por Amparo
ola amigos
estou tento o seguinte erro
Error DBFCDX/12256242 Operação não suportada EMBALAR.FPT ( DOS Error 38)
uso DBFCDX com FPT
o meu arquivo EMBALAR.FPT esta corrompido, entao fiz um programa apenas para saber qual é o RECNO que esta corrompido, por exemplo
Código: Selecionar todos
do while !EMBALAR->( eof() )
@ 09,10 say EMBALAR->( recno() )
@ 10,10 say EMBALAR->ITENS ( este é o campo memo)
EMBALAR->( dbskip() )
enddo
na execução vai mostrando o recno e o que tenho no campo memo ITENS, so que ao chegar no registro corrompido aparece a mensagem acima. PERGUNTO
existe algum utilitario para recuperar o registro corrompido, ou existe alguma forma de mostrar uma mensagem tipo ESTE REGISTRO ESTA CORROMPIDO e o sistema continuar a verificação sem dar o erro?
abraços
OPERACAO NAO SUPORTADA
Enviado: 25 Nov 2011 14:07
por ANDRIL
Nao existe uma funcao nativa para tratamento desse tipo de erro, mais podemos detecta-lo pelo menos.
Código: Selecionar todos
bloco = {|e| break(e)}
blocoantes=ERRORBLOCK( bloco )
do while !EMBALAR->( eof() )
BEGIN SEQUENCE
@ 09,10 say EMBALAR->( recno() )
@ 10,10 say EMBALAR->ITENS ( este é o campo memo)
EMBALAR->( dbskip() )
RECOVER
@24,00 say"Erro no registro!"
EMBALAR->( dbskip() )
LOOP
END SEQUENCE
enddo
ERRORBLOCK( blocoantes )
Nao testei, mais é por ai. Veja que dentro da estrutura BEGIN SEQUENCE/END SEQUENCE se ocorrer um erro (qualquer erro) a instrucao apos RECOVER sera executada. Como nao testei, nao sei te informar se sera possivel resgatar o numero do registro, se ele tiver danificado por exemplo, ai entraria em loop eterno caso nao fosse possivel por isso nao coloquei. Voce podera fazer os ajustes e testes pois tem em maos o fator do erro.
Espero que te ajude.
Abraços
OPERACAO NAO SUPORTADA
Enviado: 26 Nov 2011 08:10
por Eolo
Amparo, de curioso, fui dar uma pesquisada no tal Erro 38 e achei o seguinte:
DOS Error 38:
38 NetBIOS command limit exceeded
Fonte:
http://stanislavs.org/helppc/dos_error_codes.html
Em seguida, pesquisei pelo texto (NetBIOS command limit exceeded) e, pelo que encontrei, o problema parece ser no Windows e não no seu programa (digo, talvez não por causa de arquivos corrompidos).
Dê uma conferida:
http://support.microsoft.com/kb/810886
OPERACAO NAO SUPORTADA
Enviado: 26 Nov 2011 14:25
por rochinha
Amiguinhos,
Quando se usa DBT/FPT e processa uma deleção de registro apenas o registro do DBF fica marcado enquanto que o registro correspondente no DBT/FPT nem sofre alteração.
Ao se processar um PACK os registros marcados para deleção são eliminados mas o conteudo do DBT/FPT referentes aos registros excluídos continuarção lá.
Tempos atrás disponibilizei/ou vi alguma função que processava uma limpeza nestes arquivos após um PACK. Pena que não encontro.
A dica é, se voce processar exclusões em arquivos que contenham DBT/FPT, o ideial é copiar o conteudo(COPY TO) para uma estrutura temporaria(desta forma os registros em DBT/FPT dos registros deletados não serão copiados), renomear os originais para qualquer nome e depois renomear os temporários para os originais.
Erros como o relatado podem ocorrer se registros em DBT/FPT de deleções ainda continuam nas tabelas.
OPERACAO NAO SUPORTADA
Enviado: 26 Nov 2011 15:18
por Pablo César
Eis os arquivos do tipo MEMO... na minha opinião: só atrapalham quando são incluídas no mesmo bd. Na mho deveria estar desvinculada.