[firebase-br] RES: Transacao

Robson robsonfg em terra.com.br
Qui Nov 22 10:49:43 -03 2012


Procure fazer de modo que vc trabalhe com os dados fora do banco... eu 
geralmente faço assim:

em processos somente de leitura (relatorios, consultas, etc) eu uso uma 
transação read only, abro-a no inicio e fecho-a no final de todo o 
processo (a transação ja esta comitada no read-only)

em processos de escrita utilizo de clientdataset, ou trago os dados e 
faço pequenas interações com o banco, sempre iniciando e fechando a 
transação dentro do bloco de execuçao do processo...
por exempro, em uma propcedure ou função (delphi) abro a transação no 
incio da procedure, faço o processo e depois dou o commit...

no caso do dataset uso com um provider, e deixo esse controle de 
gravação dos dados por conta do componente...

a conexao com o banco eu uso uma so durante o dia todo se for o caso, 
agora transações, são abertas e fechadas em um piscar de olhos, a nao 
ser em caso de read only...

na internet vc acha um monte de dicas que pode te ajudar a escolher o 
melhor processo no seu caso

Em 22/11/2012 10:17, Juliana Maria escreveu:
> Uso os componentes IBDatabase e IBTransaction num DataModule. Ao entrar no
>
> sistema conecto o IBDatabase e fecho no final, ao sair do sistema. Não trato
> nada sobre IBTransaction. Neste caso como devo fazer? Preciso otimizar as
> transações pois desta forma está gerando demora nos processamentos.
>
>
> -----Mensagem original-----
> De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Herminio E.
> Piram
> Enviada em: quinta-feira, 22 de novembro de 2012 09:53
> Para: FireBase
> Assunto: Re: [firebase-br] Transacao
>
> Quem está controlando suas transações (Você ou componentes)?
>
> Se for o componentes, acredito que ele irá abrir uma transação para cada
> open e encerrará em cada close.
>
> Se for você, pode fazer + - assim
>
> conexao.startTransaction;
>
>    faça o que precisar com os dataSet dentro do contexto da transação
>
>
> conexão.commit;
>
> conexao.rollback;
>
> Trate isso dentro de um bloco try except e não terá problemas.
>
> 2012/11/22 Juliana Maria <juliana em engenhosistemas.com.br>
>
>> Bom dia!
>> Dúvida: Se numa rotina do meu sistema uso por exemplo 3 queries...
>> Query1: select * from tabela A
>> Query2: select * from tabela B
>> Query3: select * from tabela C
>> Query4: commit
>> No caso, a Query4 fechará todas as transacoes abertas? Senao, como
> ficaria?
>> Dá p/ fechar as transações executando apenas um Query.Close?
>> Obrigada!
>>
>
>
> --
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _ _ _ _
>
> "If the doors of perception were cleansed everything  would appear to man as
> it is, infinite." (William Blake)  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br Para
> saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
> -----
> Nenhum vírus encontrado nessa mensagem.
> Verificado por AVG - www.avgbrasil.com.br
> Versão: 2012.0.2221 / Banco de dados de vírus: 2629/5411 - Data de Lançamento: 11/22/12
>
>
>





Mais detalhes sobre a lista de discussão lista