Delphi FireDac Evento OnError com Erro?

17/08/2018

0

Olá, vou tentar descrever o cenário:

1-O DB (dbconnection do firedac) está configurado como "AutoReconnect = TRUE"
2-Aplicação inicia e conecta no DB
3-Executo uma rotina que acessa o banco, tudo ok.
4-Desconecto o PC da rede (propositalmente, para testar)
5-Na Aplicação executo um comando sql direto no componente DB. ex: DB.ExecSqlScalar( 'um select valido qualquer')
6-É disparado o evento ONERROR (pois o PC está desconectado da rede) com a exceção: "No connection to the server"
7-Reconecto o PC na rede
8-Tento executar o comando do passo 5 acima, ou qualquer outro comando SQL, quer seja no banco diretamente ou por TFDQuery
9-Novamente é disparado o evento ONERROR com a mesma exceção (fica nesse loop e não conecta mais)
.
Tenho os eventos ONLOST e ONRECOVER com código para tratar a questão de reconectar, porém eles não são disparados nunca.
.
Pesquisei na Internet e descobri que mais pessoas tiveram o mesmo problema, mas não encontrei a solução.
.
Alguém aqui teria uma luz sobre o assunto?
Alberto

Alberto

Responder

Posts

23/05/2019

Guilherme Barizão

Tenho o mesmo problema. Ainda não achei solução.
Responder

02/04/2020

Pedro Deola

Estou com o mesmo problema, alguém tem uma dica?
Responder

05/04/2020

Mário Reis

Já viram os exemplos que vêm junto com o Delphi? Se não experimente aqui:
C:\\Users\\Public\\Documents\\Embarcadero\\Studio\\15.0\\Samples\\Object Pascal\\Database\\FireDAC\\Samples\\
depois aqui dentro há mais uns quantos:
Comp Layer\\TFDConnection\\ConnectionDefs\\
espero ter ajudado
Responder

10/04/2020

Pedro Deola

Bom dia

Resolvi meu problema da seguinte forma.

O evento OnRecover coloquei o seguinte código

AAction:=faRetry;


Coloquei também um timer de 30 segundos com um ping.
ADOCONN_S.Ping;


Resolveu meu problema.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar