[firebase-br] Dados excluídos automaticamente

Gladiston Santana gladiston em vidy.com.br
Qua Ago 29 17:28:49 -03 2012


Se o gfix não reportou inconsistência ou erro na base de dados, então suas
preocupações aumentaram.
Você não poderia criar um procedure com vários passos como incluir dados na
tabela X, depois tabela Y, etc... e remover as triggers envolvidas no
processo ? É só uma suspeita.
Uma outra coisa que tú poderia fazer é observar ou monitorar a saude da
base de dados, durante o período diário conferir várias vezes como estão
suas transações, se ficar uma distância muito grande entre o OAT e AIT,
talvez suas transações estão perdurando por muito tempo sem um hardcommit,
daí uma finalização incorreta do programa pode fazer perder dados.

Por exemplo, num programa de outro colega, ele implantava um commit ao sair
do programa pelo menu, mas não pensou no ALT+F4 (vulgo X no canto superior)
ou a capacidade do usuário em usar o finalizar tarefa em certas situações e
isso fazia ele perder dados, depois de cansar em rever o programa
linha-a-linha e nunca achando o erro, procurou a ajuda de alguem mais
experiente (não vou dizer que fui eu) que notou essa possibilidade por
observar os logs no servidor que eram consistentes com queda de conexão do
lado cliente.

Não estou dizendo que é isso,  apenas dizendo que até na programação exige
humildade e reconhecer que não sabemos de tudo.

[]'s
Em 29 de agosto de 2012 15:48, Everton Patricio Pereira <
evertonkiai em gmail.com> escreveu:

> Moacir, acho pouco provável ser a controladora do HD, pois, do contrário, o
> sistema operacional como um todo estaria instável, e não apenas o SGBD.
>
> Gladiston, utilizei o gfix e ele não me retonou nenhum erro. É provável que
> seja erro de sintaxe no sistema. No entanto, a tabela caixa só é acessada
> pelo sistema em dois momentos:
>
> O primeiro quando são inseridos, alterados ou excluídos dados manualmente.
> Neste caso, é utilizado apenas o post/edit/delete no ClientDataSet em
> conjunto com o ApplyUpdates.
> O segundo quando são excluídos os lançamentos de uma venda que foi
> cancelada. Neste caso, são utilizados comandos internos em um SQLDataSet
> (delete form caixa where...).
>
> O lançamento automático das entradas no caixa é feito através de um trigger
> com um procedure, ou seja, seu processamento é feito internamente no banco,
> sem a participação do sistema.
>
> Além disso, creio que erros de sintaxe causam problemas frequentemente.
> Estes erros acontecem eventualmente, de forma que o intervalo entre a
> primeira e a segunda vez que aconteceu foi em média de seis meses. Já o
> intervalo entre as dúas ultimas vezes que aconteceu foi de duas semanas.
>
>



Mais detalhes sobre a lista de discussão lista