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

Diego Bulgarelli diegobulg em gmail.com
Seg Fev 13 14:07:31 -03 2012


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