Controle de Transação com ADO??

Delphi

25/04/2003

Preciso fazer um controle de transação complicado.

Versão : Delphi 5
Banco : My Sql
Componente : ADO


É o seguinte:


Estou trabalhando em uma manutenção que movimenta 4 tabelas além de uma principal.

Exemplo:


Tabelas
OCORRENCIA (Principal)

Ocorrencia_SIMPLES
Ocorrencia_INTERNA
Ocorrencia_EXTERNA
Ocorrencia_URGENTE

Estarão amarradas pelo código.


Quando inicio o processo preencho os dados da ocorrência principal e dependendo da ocorrência vou alimentar uma determinada tabela.

Já que vou trabalhar com telas diferente como posso fazer um controle de transação envolvendo todo o processo?

Lembrando que pode haver várias ocorrências simples para uma única ocorrência principal.

è como se fosse uma tabela de Pedido + Itens do Pedido, só que com 4 tabelas.

Serão 10 usuários acessando a mesma base.


Algúem pode me dar uma idéia, pelo menos uma idéia


Agradeço desde já.


Marcone Maciel Barros (marcone.barros@terra.com.br)


Mmbarros

Mmbarros

Curtidas 0

Respostas

Cac2000

Cac2000

25/04/2003

Uma regra essencial quase se usa Controles de Transações é que o tempo que a transação vai ficar aberta deve ser o menor possível. Isso vale dizer que você não pode abrir uma transação, depois deixar o usuário abrir uma tela e só fechar o usuário acionar o botão de Salvar. E se o usuário foi tomar um cafezinho enquanto a tela estiver aberta? Os que estão querendo trabalhar vão ter que ficar esperando o fulano voltar do café....

Já que vc usa ADO, vc pode usar o LockType do DataSet no modo BatchOptmistic e ir dando Post a vontade. Os dados não serão gravados na base. Aí você abre uma transação e use ApplyUpdates para cada DataSet, e depois um Commit (ou Rollback se houverem erros) para fechar a transação.

Não sei se ajudei, tenta aí e me responde...


GOSTEI 0
POSTAR