[firebase-br] problema com transação firebird + dbexpress

Aldrin Fagundes aldrin.fagundes em hotmail.com
Qua Mar 14 11:08:05 -03 2007


Por favor me ajudem!

Estou tendo problemas com transação no sistema.
Antes funcionava perfeitamente com o Interbase, mas quando troquei pelo
Firebird 2.0 tive os seguintes problemas:

Utilizo o DBExpress com a dll...dbexpUIBfire15.dll + fbclient.dll
Utilizo Sql+provider+clientDataSet

Importante: Já peguei a última versão do UIB e compilei aqui para gerar a 
dll.


Exemplo do problema:

Estou com a tabela de pedidos aberta em uma tela de pesquisa.
Quando clico no botão Editar dessa tela, edito o pedido e chamo outro 
janela.
Nesta janela é que estão os tratamentos da transação...


No evento OnShow...

SQLConnection1.StartTransaction(TD);

depois abro a tabela de ítens...

Abrir_Itens_Pedido(Id_pedido);


Nesta tela cadastro um novo item...

Itens_Pedido.Insert;
...entro os dados...
Itens_Pedido.Post;
Itens_Pedido.ApplyUpdates(0);

Como a tabela de ítens utiliza LEFT JOIN... Tenho que dar um refresh para 
mostrar os
dados no grid...exemplo do sql... (se não executar o refresh não aparece o 
nome do produto)

SELECT ITENS_PEDIDO.*, PRODUTO.NOME
LEFT JOIN PRODUTO ON ITENS_PEDIDO.ID_PRODUTO = PRODUTO.ID_PRODUTO

Por isso executo...

Itens_Pedido.Refresh;

Aí que está o grande problema...
Neste momento eu desisto do pedido e executo os seguintes comandos:

Pedido.cancel; (pois está em modo de edição)

SQLConnection1.Rollback(TD);

O que acontece então?
Os ítens que foram aplicados o Refresh não retornam com o RollBack. E pelo
que ví nem mesmo operações em que eu abro um SQL e fecho executando alguma 
operação...
O que devo fazer? Isso funcionava no interbase...A operação não poderia 
ficar fora da
transação, pois com o interbase e o drive dbexpint32.dll funcionava.
Espero que me ajudem...pois isso é grave!

Outro problema:

Pelo que vi:

Abro tabela 1 (antes da transação)

Abro transação...

Abro tabela 2 (depois da transação)

Refresh na tabela 1 ...some os dados novos
Refresh na tabela 2 ...grava os dados e não retorna com o fim da transação

Como resolver?

_________________________________________________________________
Descubra como mandar Torpedos do Messenger para o celular! 
http://mobile.msn.com/





Mais detalhes sobre a lista de discussão lista