[firebase-br] Consulta com Transações

Felipe Giotto felipe em metasoftware.com.br
Ter Set 6 17:38:32 -03 2005


Para fazer seleções, não é necessário utilizar transações, o próprio 
SELECT comunzinho funciona que é uma beleza!!! :D
Já para operações que alteram dados no banco, você pode utilizar 
transações explícitas com StartTransaction e Commit, mas também pode 
utilizar as transações implícitas do ClientDataSet. Este componente 
trabalha somente em memória e, na hora que o ApplyUpdates é chamado, ele 
automaticamente inicia uma transação, grava os dados no banco e comita a 
mesma.... Aí fica à sua escolha!! Eu, particularmente, só utilizo 
transações quando vou tentar gravar dados de vários CDS diferentes e, 
caso dê problema em algum, eu queira voltar (Rollback) todas as 
alterações gravadas pelas operações anteriores....

Espero ter ajudado,

Felipe Giotto ;-)



Augusto escreveu:

> eu utilizo como a segunda opção, somente no INS, UPD, DEL abro a
> transação.
>
> Augusto
>
>
> ----- Original Message ----- From: "User-BA" <foruns em embytes.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Tuesday, September 06, 2005 5:06 PM
> Subject: [firebase-br] Consulta com Transações
>
>
>>
>> Olá pessoal!
>>
>> Por favor me esclareçam...
>> Utilizo o SQLConnection e o SQLQuery para buscar dados.
>> * Delphi 7 + DBExpress
>>
>> É correto e necessário,
>> se fazer as consultas iniciado-se sempre uma transação?
>>
>> Tipo:
>>
>> Try
>>    t_transacao.TransactionID         := 1;
>>    t_transacao.IsolationLevel        := xilREPEATABLEREAD;
>>    dm.conexao.StartTransaction(t_transacao);
>>    sql_usuarios.Close;
>>    sql_usuarios.SQL.Clear;
>>    sql_usuarios.SQL.Add('select count(empresa.emp_usu_chave) from 
>> empresa;');
>>    sql_usuarios.Open;
>>    dm.conexao.Commit(t_transacao);
>> except
>>    On e_erro : Exception do
>>    Begin
>>        Showmessage('ocorreu um erro);
>>        dm.conexao.Rollback(t_transacao);
>>        exit;
>>    End;
>> End;
>>
>> Ou eu poderia fazer somente conforme abaixo? ...
>>
>> Try
>>    sql_usuarios.Close;
>>    sql_usuarios.SQL.Clear;
>>    sql_usuarios.SQL.Add('select count(empresa.emp_usu_chave) from 
>> empresa;');
>>    sql_usuarios.Open;
>> except
>>    On e_erro : Exception do
>>    Begin
>>        Showmessage('ocorreu um erro);
>>        exit;
>>    End;
>> End;
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>> Para editar sua configuração na lista, use o endereço 
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>





Mais detalhes sobre a lista de discussão lista