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 :-)
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)