Re: [firebase-br] Críticas ao DBExpress
    Paulo Geloramo 
    paulogeloramo em terra.com.br
       
    Seg Jun 13 20:20:24 -03 2005
    
    
  
>Paulo, vi sua resposta abaixo e tenho a seguinte dúvida :
>Uso SqlDataSet + DataSetProvide + ClienteDataSet
>via de regra com o command test = select * from tabela where chave(s) = id
>bom eu preciso agora fazer algumas operacoes dentro de uma transacao, se 
>algo nao der certo, todas as operacoes devem dar roolback
>mas dbx nao tem componente transaction como a paleta IBX que bastava ligar 
>todos os processos nele e dar rollback na transacao voltava tudo atrás.
A função ApplyUpdate() retorna a quantidade de erros, se
a quantidade de erros for maior que zero ocorreu rollback
na transacao implicita.
voce pode testar:
if cds1.ApplyUpdate(0) > 0 then
  ShowMessage('erro');
>Como voce faz essa transação explicita com SqlDataSet + DataSetProvide + 
>ClienteDataSet ?
Use a transacão explicita conforme exemplo passado pelo Thiago,
mas gostaria de acrescentar, na maioria das vezes uma transacao
implicita resolve:
Use transacao implicita quando:
- Envolve apenas um ClientDataSet
- Varios ClientDataSet mestre-detalhe aninhado
Um exemplo de uso de transacao explicita seria quando usar
dois ou mais ClientDataSet não mestre-detalhe aninhado com
necessidade de atomicidade, tudo ou nada, lançamento nos
dois cds ou nenhum.
[]s
Paulo Geloramo
    
    
Mais detalhes sobre a lista de discussão lista