[firebase-br] DBXpress não faz commit no Firebird

Reijanio Nunes Ribeiro rnribeiro em gmail.com
Sex Maio 7 09:43:13 -03 2010


usa o onreconcileerror do clientdataset pra ver o que ta acontecendo

Em 7 de maio de 2010 09:33, Danilo Miranda <danilomibr em gmail.com> escreveu:

>  Bom dia!
> Temos uma aplicação desenvolvida com Delphi 2007 utilizando o DBXpress +
> Driver CoreLab para Firebird (FB 2.1).
>
> Utilizamos o trio TSQLDataSet, TDataSetProvider e TClientDataSet... no
> TSQLDataSet temos um select parecido com este:
> Select * from TABELA1 where ID_TABELA1 = xxxxx
>
> Nesta tabela, fazemos inserções, exclusões, edições, utilizando os métodos
> Insert, Delete, Update do ClientDataSet e após uma destas operações damos o
> APPLYUPDATES(0).
>
> Por algum motivo que não sabemos o qual e acontece só de vez em quando, o
> usuário que está trabalhando (ele abre o sistema no começo do dia,
> consequentemente abre a conexão com o banco e esta permanesse aberta até
> que
> o programa seja fechado) faz as diversas alterações nesta tabela. Ele pode
> fechar a tela, abrir a tela (só a tela, não o sistema) e as alterações que
> ele fez estão lá...
> Quando ele fecha o sistema (conexão) e abre novamente todas as alterações
> que ele realizou foram perdidas. Simplesmente não foi dado o APPLYUPDATE(0)
> no banco.
>
> Um detalhe talvez importante, o ID_TABELA1 é um auto incremento através de
> uma trigger e um Generator.. o generator Salta direitinho a numeração, como
> se o registro tivesse sido inserido, porém o registro não existe.
>
> Um outro detalhe importante, logamos estas alterações através de eventos do
> TDataSetProvider, executando um
> var
> td: TDBXTransaction;
> begin
> td := Inicia transação;
> cnnConexao.ExecuteDirect('insert blabalbal');
> cnnConexao.CommitFreeAndNil(td);
> end;
> Este log está no banco de dados, mas as alterações não estão...
>
>
> Isto pode ser um problema do Firebird, do Delphi(DBXpress) ou do Driver da
> CoreLab? E qual a melhor maneira de solucioná-lo?
>
>
> O problema maior, é que até agora não conseguimos reproduzir o erro em
> ambiente de testes, apenas o cliente que reclama que ele às vezes altera e
> não aparece...
>
>
> Abraços
>
>
> Danilo Miranda <http://www.danilomiranda.com.br>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista