Dados desaparecendo....

Firebird

30/01/2004

Olá pessoal...

É o seguinte...
Estou desenvolvendo um sistema para o controle interno da empresa onde trabalho...

Uma funcionária veio me questionar que o que ela lançou no sistema ontem desapareceu...Fui consultar diretamente no banco de dados e constatei que realmente não existem registros com a data de ontem.

O que pode estar ocasionando isso?

Eu uso INTERBASE e no OnClose de todos os forms eu utilizo o seguinte comando:

DmDados.IBTransactionDados.Active :=True;
DmDados.IBTransactionDados.Commit;

Alguém poderia me ajudar nessa aí?

valeu!
Marcos Miranda.


José Alves

José Alves

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

30/01/2004

Será que não houve um problema na hora que impediu o COMMIT dos registros? Se só é dado COMMIT na hora de fechar o form e der um problema, perde-se tudo o que foi digitado enquanto o form estava aberto.


GOSTEI 0
José Alves

José Alves

30/01/2004

Será que não houve um problema na hora que impediu o COMMIT dos registros? Se só é dado COMMIT na hora de fechar o form e der um problema, perde-se tudo o que foi digitado enquanto o form estava aberto.



Como devo fazer então???

Valeu!
Marcos Miranda.


GOSTEI 0
Gandalf.nho

Gandalf.nho

30/01/2004

Você não tem um botão no form para comitar as alterações sem que o usuário precise fechar o form?


GOSTEI 0
José Alves

José Alves

30/01/2004

Você não tem um botão no form para comitar as alterações sem que o usuário precise fechar o form?


tenho um botão onde dou um post
mas se eu não realizar o commit, as outras máquinas da rede não conseguem vizualizar as alterações...
Se eu der o commit após o post, o banco vai reordenar a tabela, colocando - no 1º registro...Por isso, coloco commit no fechamento do form...

Tem alguma outra meneira?


GOSTEI 0
Afarias

Afarias

30/01/2004

1- Não deixe q algo importante como a gravação dos registros fique por conta e algo tão ´frágio´ como o fechamento do FORM (siga a dica do pessoal, um botão de gravar)

2- Este código::

DmDados.IBTransactionDados.Active :=True;
DmDados.IBTransactionDados.Commit;

NÃO FAZ NADA!!

substitua por (no OnClose do form)::

if DmDados.IBTransactionDados.InTransaction then
DmDados.IBTransactionDados.Commit;


|Se eu der o commit após o post, o banco vai reordenar a tabela, {...}

Use COMMITRETAINING no botão de gravação


No mais, verifique se o banco de dados não está corrompido (com o GFIX ou IBConsole ou outra ferramenta) e faça um backup e restaure o banco.


T+


GOSTEI 0
José Alves

José Alves

30/01/2004

Olá...

Muito Obrigado pelas respostas...
Verifiquei ma outra coisa...

Os dados inseridos só são vistos na rede se a o software que fez a insersão for fechado...

Porque isso acontece? Como faço para resolver?

Valeu de novo...

Marcos.


GOSTEI 0
Afarias

Afarias

30/01/2004

Configura suas transações para READ COMMITED

(se for ibx, dê um duplo-clique nos IBTransaction)


T+


GOSTEI 0
POSTAR