[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