O Melhor Uso com IBTransaction

Firebird

26/08/2004

Olá, a minha dúvida é:

Eu vi um código fonte de um sistema comercial que rodar em rede, ele estava usando fb1.5 c/ conexões ibx, e lá no datamodule tinha uma coisa que me despertou dúvidas, que era um ibdatabase ligado com um ibtransaction que é normal, mas além disso tinha várias ibquery ligados com o ibupdatesql e um ibtransaction para cada ibquery/ibupdatesql, e no meu sistema comercial que estou fazendo eu uso ibtable p/ tabelas de cadastros mais simples, ibquery para consultas e ibclientdataset para modulos que usam relac. master/detail e somente um ibtransaction ligado ao ibdatabase. o que eu quero saber é, eu faço como o código fonte que eu vi ou faço como estou fazendo no meu coódigo fonte?

muito obrigado.


Tap_pedroso

Tap_pedroso

Curtidas 0

Respostas

Afarias

Afarias

26/08/2004

|o que eu quero saber é, eu faço como o código fonte que eu vi ou faço
|como estou fazendo no meu coódigo fonte?

Não existe certo e errado aqui. Vc pode ter 1, 2 ou 100 transações -- depende da aplicação e de sua preferência.


T+


GOSTEI 0
Tap_pedroso

Tap_pedroso

26/08/2004

então eu usando 1 ibtransaction só irá funcionar para todas as tables?


GOSTEI 0
Afarias

Afarias

26/08/2004

|então eu usando 1 ibtransaction só irá funcionar para todas as tables

Sim, pode -- mas é importante q vc entenda a função das transações -- pq ter 1 ou mais de 1 é um questão ´operacional´ e não apenas uma escolha.


T+


GOSTEI 0
Renato_sp

Renato_sp

26/08/2004

Afarias vc disse que é uma questao operacional, deu a entender que em determinadas aplicacao seria melhor usar poucas transation e outras ja seria usar uma para cada IBDataset, bom nao sei se entendi errado o que escreveu... Gostaria de saber em que sistemas ou caracteristicas de sistema vc aconselharia varias transation em vez de uma para todo o sistema. !!!! Eu costumo usar um IBDatabase para me conectar e a cada modulo usar um IBDataset + IBTransation nao sei se seria o certo, por isso gostaria de saber quando usar varias e quando usar apenas uma.. !!! existe alguma regra ?

Renato / SP


GOSTEI 0
Afarias

Afarias

26/08/2004

|Afarias vc disse que é uma questao operacional, deu a entender que em
|determinadas aplicacao seria melhor usar poucas transation e outras ja
|seria usar uma para cada IBDataset,

por ai sim...


|Gostaria de saber em que sistemas ou caracteristicas de sistema vc
|aconselharia varias transation em vez de uma para todo o sistema. !!!!

Particularmente só uso 1 transação apenas para várias tabelas/processos em sistemas que usam ClientDataSets (ou algo semelhante) -- já q nestes casos as transações são *muito* curtas


|Eu costumo usar um IBDatabase para me conectar e a cada modulo
|usar um IBDataset + IBTransation nao sei se seria o certo,

SIM, não há problema nisso


|por isso gostaria de saber quando usar varias e quando usar apenas
|uma.. !!! existe alguma regra ?

Regras?? Bom ... eu citaria o seguinte::


A)

1 transação para cada ´processo´ (ex:: cadastro de produtos, vendas, etc..) -- lembre q nos mestre/detalhe e outras relações vc terá mais q 1 tabela (DataSet) mas [color=red:4d04432095]em geral[/color:4d04432095] apenas 1 transação

B)

1 transação para todos os processos rápidos (não concorrentes) q não estão associados a DataSets (updates, selects de generators, etc...)

C)

Quando usar ClientDataSets vc pode usar 1 transação para todos os ´processos´ -- menos os mestre detalhe q não usam nested-datasets e os demais citados no ítem B (pq o MIDAS controla as transações automaticamente e vc não deve misturar essas transações com transações q vc controlará manualmente)


note q o importante é saber a função de uma transação -- essas ´regras´ acima são ´usos gerais´ -- mas não definem como vc deve aplicar transações em suas aplicações.



T+


GOSTEI 0
POSTAR