[firebase-br] Multiplas transações com dbExpress

Jean Alysson jeanpapa em gmail.com
Ter Fev 14 08:27:48 -03 2012


Se vc estiver usando o Delphi 2010 ou Delphi XE, o controle é
diferente, veja no site do Andreano da Embarcadero:

http://www.andreanolanusse.com/pt/como-trabalhar-com-multiplas-transacoes-utilizando-dbexpress-framework/

Abraco

Em 13 de fevereiro de 2012 13:49, Diego Bulgarelli
<diegobulg em gmail.com> escreveu:
> Galera, muito obrigado pela ajuda! :)
>
> Consegui usando um TSQLConnection para cada transação distinta (cada módulo
> do sistema).
> Testei usando a mesma tabela e tabelas diferentes e funcionou certinho.
> Se alguém tiver uma ideia melhor, será muito bem vinda! =D
>
> Abraços
> Diego Bulgarelli
>
>
> Em 13 de fevereiro de 2012 13:07, Diego Bulgarelli
> <diegobulg em gmail.com>escreveu:
>
>> Só para complementar, este ID do  TTransactionDesc (se não estou
>> enganado) trabalha como "Pilha" de modo que todas as alterações vão para o
>> último ID criado. Dessa maneira não consigo separar totalmente as
>> transações.
>> Ps: acho que ficou obsoleto a partir do Delphi 2010.
>>
>> Em 13 de fevereiro de 2012 13:05, Diego Bulgarelli <diegobulg em gmail.com>escreveu:
>>
>> Só para complementar, este ID do  TTransactionDesc (se não estou
>>> enganado) trabalha como "Pilha" de modo que todas as alterações vão para o
>>> último ID criado. Dessa maneira não consigo separar totalmente as
>>> transações.
>>> Ps: acho que ficou obsoleto a partir do Delphi 2010.
>>>
>>> Em 13 de fevereiro de 2012 12:59, Diego Bulgarelli <diegobulg em gmail.com>escreveu:
>>>
>>> Boa tarde! :)
>>>>
>>>> O problema é que para isso devo usar o TTransactionDesc que atualmente
>>>> está obsoleto (deprecated).
>>>> Eu tentei encontrar algum tipo de ID em TDBXTransaction mas não
>>>> encontrei! :S
>>>> Estou fazendo um teste usando vários TSQLConections, acho que vai dar
>>>> certo porém um pouco trabalhoso.
>>>>
>>>> Grato
>>>>
>>>>
>>>> Em 13 de fevereiro de 2012 12:40, Hélio Oliveira <hpensador em gmail.com>escreveu:
>>>>
>>>> Boa tarde Diego!
>>>>>
>>>>> Verifique o exemplo postado pelo colega Paulo Portella e veja que
>>>>> quando ele cria a transação a mesma recebe um TransactionID, daí onde você
>>>>> poderá criar n-transações e controla-las pelos seus respectivos ID;
>>>>>
>>>>>  Sim, mas alguém sabe como trabalhar com duas transações distintas ao
>>>>>> mesmo
>>>>>> tempo na mesma conexão?
>>>>>>
>>>>>> Em 13 de fevereiro de 2012 12:30, Paulo Portella<
>>>>>> pportellaa.firebase em gmail.com>  escreveu:
>>>>>>
>>>>>>  O dbExpress tambem controla e controla muito bem, diga-se por sinal:
>>>>>>> exemplo:
>>>>>>>
>>>>>>> var
>>>>>>>  Transacao: TTransactionDesc;
>>>>>>> begin
>>>>>>>  SQLDataSet1.CommandText:= 'select ID, NOME from CLIENTES where ID =
>>>>>>> :id;
>>>>>>>  SQLDataSet1.ParamByName('id').****AsInteger:= 1;
>>>>>>>
>>>>>>>  ClientDataSet1.Open; // Note que apenas o TClientDataSet deve ser
>>>>>>> aberto
>>>>>>>  with ClientDataSet1 do
>>>>>>>  begin
>>>>>>>    Append;
>>>>>>>    FieldByName('ID').AsInteger:= 2005;
>>>>>>>    FieldByName('NOME').AsString:= 'ClubeDelphi';
>>>>>>>    Post;
>>>>>>>    Transacao.TransactionID:= 1;
>>>>>>>    Transacao.IsolationLevel:=  xilReadCommitted;
>>>>>>>    SQLConnection1.****StartTransaction(Transacao);
>>>>>>>
>>>>>>>    if  ApplyUpdates(0) = 0 then
>>>>>>>      SQLConnection1.Commit(****Transacao)
>>>>>>>    else SQLConnection1.Rollback(****Transacao);
>>>>>>>
>>>>>>>  end;
>>>>>>>
>>>>>>> "Vivam de maneira que as pessoas que os conheçam, ainda que não
>>>>>>> conheçam a
>>>>>>> CRISTO, queiram CONHECÊ-LO por conhecerem vocês"
>>>>>>> H. David Burton
>>>>>>>
>>>>>>>
>>>>>>>
>>>
>>
> ______________________________________________
> 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



-- 
Atenciosamente
Jean Alysson Ambrosio
Informática - Ody Park e Motel Good Time




Mais detalhes sobre a lista de discussão lista