Commit ou CommitRetaining: Qual usar e qual esquecer?

13/01/2004

0

Olá colegas programadores.

Eu costumava usar o método CommitRetaining do Interbase para gravar os dados da transação corrente para o banco de dados. Porém, lí na revista ClubeDelphi - cuja edição não me recordo no momento - que isto era ruim porque mantinha a transação aberta e era possível com isso ocorrerem problemas, como deadlocks. Depois disso, passei a usar apenas o Commit. O problema desta abordagem é que todas as tabelas ligadas à transação são fechadas, e tenho que abrí-las manualmente. Isto é mau pois algumas destas tabelas contém muitos registros, o que retarda a continuidade do uso do aplicativo.

Eu uso apenas uma transação para os IBDataSets/IBQueries. A solução seria utilizar uma transação para cada IBDataSet? Ou eu posso voltar a usar o CommitRetaining sem medo de possíveis erros no funcionamento de minha aplicação? E eu devo sempre manter as transações ativas pelo menor tempo possível, correto?

Na mesma revista ClubeDelphi eu lí também que o IBO tem um sistema mais inteligente de transações. Pretendo utilizá-lo para futuras versões de meus aplicativos. Seria uma boa escolha?

Grato desde já por qualquer ajuda.

Michael Benford :-)


Michael

Michael

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar