Fórum Trabalhando com transações em IBX #43416

25/03/2004

0

Estava eu outro dia navegando de boeira nos tópicos do clube e me deparei com um tópico que abordava a utilização das transações para os componentes IBX a primeira o usuário dizia que utilizava um componente transação para todas as tabelas da aplicação
Em seguida vinha outro que dizia que utilizava um componente de transação para cada tabela, então fiquei na dúvida quais os pros e contras destes modelos ??? :?: :?: :?:


Sremulador

Sremulador

Responder

Posts

27/03/2004

Afarias

Tudo depende da aplicação e da preferência de cada um... o importante é q vc saiba trabalhar com as transações (digo: entenda como funcionam) para poder definir o q é melhor para o seu caso.


T+


Responder

Gostei + 0

29/03/2004

Sremulador

Mas os dois dão no mesmo, ou tem alguma melhor do que a outra.


Responder

Gostei + 0

29/03/2004

Afarias

Como disse, não há melhor... tudo depende do caso...

Vc pode por exemplo manter 1 transação para cada ´cadastro´ pois isso deixaria as coisas mais organizadas e permitiria q os cadastros trabalhem mais independentes (otimizando as transações) -- em outro exemplo, no caso de entradas tipo mestre-detalhe vc sempre vai usar apenas 1 transação para todas as tabelas envolvidas, já q todas participam de um processo único.

Então a ´regra´ é:: Transações não são definidas por ´tabelas´ ou ´aplicação´ -- pelo próprio conceito, transações são definidas por ´PROCESSOS´!


T+


Responder

Gostei + 0

29/03/2004

Alex_

Bom aproveitando o gancho, e tentando acalmar a briga dos dois :D

Eu uso apenas 1 transação, mas por motivo de não querer que as tabelas se fechem (não sei por que ocorre isso no IBX) eu não uso o Commit ´seco´.

Eu uso sempre o CommitRetaing e o RollbackRetaing, para evitar que ocorra o fechamento dos dataset´s e ter que abrir tudo novamente manualmente.

A pergunta é: eu Só uso os Retaing nunca uso os Commit e Rollback ´secos´ que fecham os Dataset´s, isso pode dar algum problema para mim????

Grato,

Alex.


Responder

Gostei + 0

29/03/2004

Afarias

Bom aproveitando o gancho, e tentando acalmar a briga dos dois :D


Oxe!! Que briga?!


|Eu uso apenas 1 transação, mas por motivo de não querer que as
|tabelas se fechem (não sei por que ocorre isso no IBX) eu não uso o
|Commit ´seco´.

Por isso mesmo vc deveria usar mais q 1 transação -- usando 1 transação para tudo e sempre usando CommitRetaining só vai ´prejudicar´ seu banco


|A pergunta é: eu Só uso os Retaing nunca uso os Commit e
|Rollback ´secos´ que fecham os Dataset´s, isso pode dar algum
|problema para mim????

SIM

Procure sempre usar Commits sempre q possível (por exemplo, quando fechar um cadastro) -- se usar uma transação para cada cadastro vai facilitar bastante.


T+


Responder

Gostei + 0

29/03/2004

Sremulador

Por isso mesmo vc deveria usar mais q 1 transação -- usando 1 transação para tudo e sempre usando CommitRetaining só vai ´prejudicar´ seu banco


Não entendi em que hora o meu banco de dados será prejudicado :?: :?: :?:


Responder

Gostei + 0

29/03/2004

Alex_

Nem eu entendi também... :?


Responder

Gostei + 0

29/03/2004

Afarias

hahahahahaha... Ok, falei o efeito mas esqueci dos argumentos!! :)

Bom, de forma rasteira:: quando vc não fecha as transações, não se desfaz das ´versões´ de dados -- isso com o tempo, tornará a aplicação mais lenta a cada dia -- nada q não possa se ´sanado´ com um sweep do banco.

Dêem uma olhada nestes artigos::

http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=108
http://www.firebase.com.br/cgi-bin/firebase.cgi/dica?ID=331
http://www.firebase.com.br/cgi-bin/firebase.cgi/dica?ID=37



T+


Responder

Gostei + 0

29/03/2004

Alex_

Saquei, mas e se eu der um Commit (sem o retaing) somente ao Encerrar a Aplicação e durante a aplicação usar o Retaing como já uso. Será que resolve, ou pelo menos minimiza o problema?

Ou teria que ser o Close de cada Form?

É que eu não gostaria de usar mais de uma transação se possível. Mas gostaria de evitar essa lentidão dita a pouco.

:arrow: Pela 428ª vez agradeço.

Alex.


Responder

Gostei + 0

29/03/2004

Sremulador

E justamente o que eu não quero também fazer um monte de transação ainda mais que eu utilizo o datamodule.


Responder

Gostei + 0

29/03/2004

Afarias

|Saquei, mas e se eu der um Commit (sem o retaing) somente ao
|Encerrar a Aplicação e durante a aplicação usar o Retaing como já uso.
|Será que resolve, ou pelo menos minimiza o problema?

Não


|Ou teria que ser o Close de cada Form?

Preferencialmente


|É que eu não gostaria de usar mais de uma transação se possível. Mas
|gostaria de evitar essa lentidão dita a pouco.

Usar mais q 1 transação é em geral a melhor escolha


|E justamente o que eu não quero também fazer um monte de transação
|ainda mais que eu utilizo o datamodule.

Vc pode usar + q 1 data module se for o caso



T+


Responder

Gostei + 0

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

Aceitar