[firebase-br] Mais alguém testando FB4 com o Firedac no Delphi10.3.3?

Gladiston Santana gladiston em vidy.com.br
Sexta Julho 30 10:49:16 -03 2021


Mais alguém testando FB4 com o Firedac no Delphi10.3.3?

Eu fiz um teste aqui com o FB4 com o parâmetro "DataTypeCompatibility =
3.0" para não ter que lidar com os novos tipos agora, pois sabidamente o
FireDAC não os suportará.
E meu programa que já funcionava em FB3 funciona bem com o FB4, mesmo os
TFields que eu temia muito funcionam muito bem.
Mas tenho uma exceção ao lidar com transações explícitas, o qual uso muito
em minhas aplicações, algo assim:
    try
      q1.Connection.StartTransaction;
      q1.SQL.Add('select  result_value FROM PROC_TESTE(''BLABLA'')  ');
      q1.SQL.Add(';');
      q1.Open;
      q1.Connection.Commit;
    except
      on e:exception do
      begin
        q1.Connection.Rollback;
        ELog('Erro ao calcular tempo de confecção: '+e.Message);
      end;
    end;
Como pode ver, algo bem trivial, mas quando chamo uma procedure
(exec/select from procedure) e a própria procedure gera uma exception
dentro dela mesma (exception blablabla; exit) o programa prossegue como
pré-determinado e vai para o rollback, mas daí o FB4 me envia uma outra
mensagem como "firebird unable to find savepoint(...)", e morre lá nos
domínios das units do FireDAC onde há os métodos dele.
O mesmo não ocorre com o FB3, então eu vou cancelar por ora a homologação
para o FB4, mas gostaria de continuar estudando o problema e descobrir se
mais alguém na lista está presenciando problemas assim. Pelo que percebi é
apenas com procedures que disparam exception. Eu suspeito que o FB4 desfaz
a transação e o Firedac ao dar um rollback depois não encontra uma
transação pendente para o rollback e que não há nada que eu possa fazer,
pois o jeito planeja onde inicio a transação e finalizo estão corretas e
beiram o trivial.

-- 
Gladiston Santana
Informática, Grupo Vidy


Mais detalhes sobre a lista de discussão lista