[firebase-br] DBExpress + NoWait Transaction

Gladiston Santana gladiston em vidy.com.br
Ter Jul 19 12:23:49 -03 2016


Não recomendo o método InTransaction, pois há momentos que ele diz que não
há transação, mas o FB só funciona com uma transação ativa então isso me
deixa dúvidas. Daí só uso assim:
Um exemplo que eu faço ao fechar o form principal:
    if (FDConnection1.Connected) then
    begin
      if Assigned(FDConnection1.Transaction) then
      begin
        if FDConnection1.Transaction.Active
          then FDConnection1.Transaction.Commit;
      end;
    end;

No exemplo acima TFDTransaction está associado ao TFDConnection, por isso
estou usando o FDConnection1 como wrapper. Mas, pode usar
FDTransaction.Active diretamente também

Use Assigned(propriedade)  nas propriedadesdo Firedac antes de acessa-la,
pois o mesma gosta de soltar AVs em objetos ainda não assinalados ou vazios.


Em 18 de julho de 2016 19:17, Diego Bulgarelli <diegofirebird em gmail.com>
escreveu:

> Bom dia gente!
>
> Eu estava abrindo transações somente para métodos com mais de um SQL.
> Passei a usar abrir e comitar as transações para os métodos simples também
> e hoje não deu os erros.
>
> Foi bem simples. No início da minha rotina de executar SQLs, verifico se
> não está SQLConnection.InTransaction e com isso inicio uma nova transação,
> executo o SQL e já comito em seguida.
>
> Muito obrigado pela ajuda de todos.
> Abraços
>



Mais detalhes sobre a lista de discussão lista