O Melhor Uso com IBTransaction
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.
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
Curtidas 0
Respostas
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+
|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
26/08/2004
então eu usando 1 ibtransaction só irá funcionar para todas as tables?
GOSTEI 0
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+
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
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
Renato / SP
GOSTEI 0
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+
|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