Página 1 de 1
Reg. Deletados foram retornados. Estranho!
Enviado: 17 Mai 2008 13:48
por marcos.gurupi
Caros, aconteceu uma situacao muito estranha em um cliente meu. Eu tive que criar um campo no banco de dados CONTAS A RECEBER e alterar outro campo, ateh ai tudo bem acontece que apos essa alteracao que foi feita pelo DBU todos os registros deletados foram retornados e agora o CONTAS A RECEBER do meu cliente estah uma bagunca soh. Alguem jah passou por essa situacao. Estou com o banco de dados aqui comigo para ver como fazer o processo inverso.
Marcos Roberto
Re: Reg. Deletados foram retornados. Estranho!
Enviado: 18 Mai 2008 15:41
por rochinha
Amiguinho
Primeiro - veja que houve uma falha que foi a de não criar um backup antes de manusear a tabela.
Segundo - não conheço o DBU mas acho que o mesmo possua uma opção de ligar/desligar o estado de SET DELETE quando se manuseia uma tabela e que voce poderia ter ligado.
Terceiro - para evitar no futuro estes problemas crie campos extras que definam que o registro foi efetivado. No meu caso uso um campo data chamado de RECEBIDO, um campo flag lógico chamado FLAG e um campo lógico chamado FECHAMENTO.
Onde:
RECEBIDO - Recebe a data da quitação do registro.
FLAG - seu estado é sempre FALSE para registros em aberto e TRUE quando forem quitados.
FECHAMENTO - seu estado é sempre FALSE para registros normais e TRUE quando forem exclusos.
Como nunca deixo que meu usuario use PACK tais campos me ajudam a sumir com registros cujo campo FECHAMENTO esteja TRUE através das chaves de indexação INDEX ON ... FOR ... fechamento=.f.
Talvez voce tenha em sua tabela algum campo que possa lhe mostrar que o registro foi deletado e ai fazer uma limpa, mas fica o alerta para o uso de DBUs da vida, backup antes, sempre.
DICA: Se voce possui um backup anterior desta tabela, monte uma rotina que abra estes arquivos em modo SET DELETE OFF e através de um do..while proceda uma verificação registro a registro comparando campos e verificando no backup se o registro esta deletado, se sim, delete o registro compativel na tabela modificada.
Re: Reg. Deletados foram retornados. Estranho!
Enviado: 19 Mai 2008 15:16
por vagucs
quando vc adiciona um campo pelo dbu, ele copia todos os registros, inclusive os deletados, porem nao marca os mesmos como deletado no arquivo final. antes de mexer na estrutura do arquivo sempre de um pack no mesmo.
Re: Reg. Deletados foram retornados. Estranho!
Enviado: 19 Mai 2008 16:33
por marcos.gurupi
Pois eh essa informacao pra mim era super importante mas na sexta feira. Agora eh tarde... estou com um problema serio com um cliente. O contas a receber dele estah uma bagunca por causa disso. Ai vc me pergunta! E o backup? Pois eh a ultima vez q eles fizeram backup foi dia 27/04. Eh aquela velha maxima, para uma grande tragedia eh ocorre varios erros pequenos, inclusive eu mesmo deveria ter feito um backup antes da operacao, mas como jah fiz outras vezes e n tive problema peguei pelo excesso de confianca. Fica o registro.
Marcos Roberto
Re: Reg. Deletados foram retornados. Estranho!
Enviado: 19 Mai 2008 17:08
por vagucs
Uai, pega o backup entao e pelo menos faz um pequeno programa que delete os registros que ja estivere marcados no backup, ja vai adiantar muito.
Re: Reg. Deletados foram retornados. Estranho!
Enviado: 20 Mai 2008 07:23
por marcos.gurupi
Eh uma sugestao... e boa diga c d passagem. Mas hoje pela madrugada eu tive uma ideia. O DBU cria um arq. DDBBBUUU.TMP de backup quando c faz alteracao de campo e depois apaga o arq. eu vou rodar um recovery para voltar esse arq. e ver como ele estah. C tiver sucesso eu pego apenas o movimento de sexta-feira pra k e lanco novamente.
NOTA: No caso de seguir seu exemplo como indentifico o registro deletado dentro no BD?
Marcos Roberto.
Re: Reg. Deletados foram retornados. Estranho!
Enviado: 20 Mai 2008 16:17
por rduraes
Com a função deleted() que retorna .t. para o registro marcado com del e .f. para os não marcados.
Re: Reg. Deletados foram retornados. Estranho!
Enviado: 20 Mai 2008 18:05
por rochinha
Amiguinho
Se o DBBBUUU.TMP é um backup copie-o com o nome do arquivo oficial e acresça a ela os registros faltantes até hoje. Melhor que testar o backup com o oficial que voce tem agora.
Ou crie um laço que abra o DBU.TMP, pegue o registro, verifique se esta deletado e se sim localize-o no oficial e marque o registro correspondente.
Re: Reg. Deletados foram retornados. Estranho!
Enviado: 20 Mai 2008 19:37
por marcos.gurupi
Eu solucionei 95% do problema. Primeiro eu rodei um programa recovery para tentar recurar o ddbbbuuu.tmp mas n tive sucesso, entaum peguei o backup q tinha (data 27/04/2008) e baseado nele deletei os registro no arq. principal. N foi um sucesso, levando em conta q ainda achei alguns registros estranhos mas eh muito pouco diante do problema q estava enfrentando. Agora eu aprendi! Muita confianca, n eh muito bom. C eu tivesse sido precavido teria feito a copia do arq. antes de criar o campo. Mas entenda, eu sempre fiz isso e nunca tive problema e das outras vezes eu fiz backup. Acredita!!!! Finalmente hoje vou dormi bem!
Marcos Roberto
Re: Reg. Deletados foram retornados. Estranho!
Enviado: 21 Mai 2008 07:52
por ederxc
marcos.gurupi escreveu:Eu solucionei 95% do problema. Primeiro eu rodei um programa recovery para tentar recurar o ddbbbuuu.tmp mas n tive sucesso, entaum peguei o backup q tinha (data 27/04/2008) e baseado nele deletei os registro no arq. principal. N foi um sucesso, levando em conta q ainda achei alguns registros estranhos mas eh muito pouco diante do problema q estava enfrentando. Agora eu aprendi! Muita confianca, n eh muito bom. C eu tivesse sido precavido teria feito a copia do arq. antes de criar o campo. Mas entenda, eu sempre fiz isso e nunca tive problema e das outras vezes eu fiz backup. Acredita!!!! Finalmente hoje vou dormi bem!
Marcos Roberto
Ainda bem que foi solucionado né hehehehe
Mas no seu caso não deixaria de dar atenção a dica do rochinha , esse lance de usar flags
"campo coringa" isso é uma mão na roda.
"Pocha agora esse forum não para de mudar hehe" (X) :-[ (L)
té++ :%