[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