[firebase-br] Dúvidas com Transações
Cristiano Testaí
cristiano_testai em hotmail.com
Ter Dez 27 15:12:46 -03 2005
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- Se realizo operaçõe de inserts, updates em determinadas tabelas sem estar
em um bloco transacional, as atualizações são commitadas automaticamente?
4- 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?
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