[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