[firebase-br] Algumas dúvidas sobre Transações.
Cristiano Testaí
cristiano_testai em hotmail.com
Seg Jan 2 15:03:57 -03 2006
Olá,
Tenho algumas dúvidas com transações com Firebird/Interbase utilizando
DBExpress que se possível gostaria de poder saná-las:
1- Qual o isolamento relacionado ao FB/IB quando eu informo xilDIRTYREAD no
modo de isolamento do objeto TTransactionDesc utilizando dbexpress? Pelo que
sei o IB/FB suporta
os isolamentos ReadCommited, Concurrency e Consistency, que tem
caracteristicas diferentes em relação a explicação que vi no help do
isolamento xilDIRTYREAD.
2 - Ao realizar um overlapping de transações posso informar ao dataset qual
transação ele irá pertencer através da propriedade "TransactionLevel", que
por default indica a ultima transação ativa, sendo seu valor = 0. Qual deve
ser o valor desta propriedade para informar uma determinada transação sem
ser a ultima transação ativa? Por exemplo, iniciei 3 transações para a mesma
conexao e gostaria que meu dataset pertencesse a segunda transação, qual
valor devo indicar na propriedade?
3- Ao realizar um conjunto de processos(insert, updates..) iniciado por uma
transação, e por algum motivo ocorrer um erro na base de dados(ex.. violação
foreign key em um determinado registro) todos processos sao automaticamentes
discartados pelo(s) banco(s), ou tenho que tratar a exceção e realizar o
Roolback explicitamente? Fiz alguns testes e os processos nao foram
discartados, isto é,
a transação continuou ativa. É isso mesmo? Faço essa pergunta pq li a
respeito que seria
realizado automaticamente o Roolback, inclusive para todos os processos nos
bancos que possuissem a transaçao referenciada.
5- Qual a melhor forma de gerenciar as transações em operações realizadas em
bancos de dados diferentes? Ex: Possuo um fin.fdb(financeiro),
log.fdb(logistica) ,cml.fdb(comercial). Em uma confirmação de nota fiscal
tenho que realizar a confirmação da nota, baixar os estoques e lançar o
contas a receber. Qual seria a melhor forma para garantir a consistencia
dos bancos se em uma das operações falhar todos os processos nos outros
bancos também serem descartados, isto é, como gerenciar as transações
distintas?
Agradeço a atenção,
Cristiano
Mais detalhes sobre a lista de discussão lista