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

Diego Bulgarelli diegobulg em gmail.com
Seg Fev 13 14:49:47 -03 2012


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
>>>>>>
>>>>>>
>>>>>>
>>
>



Mais detalhes sobre a lista de discussão lista