Fórum Delphi FireDac Evento OnError com Erro? #596491
17/08/2018
0
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
Curtir tópico
+ 1Posts
23/05/2019
Guilherme Barizão
Gostei + 0
02/04/2020
Pedro Deola
Gostei + 0
05/04/2020
Mário Reis
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
Gostei + 0
10/04/2020
Pedro Deola
Resolvi meu problema da seguinte forma.
O evento OnRecover coloquei o seguinte código
1 | AAction:=faRetry; |
Coloquei também um timer de 30 segundos com um ping.
1 | ADOCONN_S . Ping; |
Resolveu meu problema.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)