[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