Autor Téma: Firedac - vypnutí serveru  (Přečteno 370 krát)

Offline Iken

  • Mladík
  • **
  • Příspěvků: 77
  • Karma: 1
Firedac - vypnutí serveru
« kdy: 06-04-2017, 21:08:33 »
Ahoj všem,
mám aplikaci, která pro komunikaci se MySQL databází využívá knihovnu FireDac a komponentu FdConnection.

V případě, že po připojení Connected:=True vypnu server tak neproběhne událost AfterDisconnect jak bych očekával a když testuju Connected tak zůstává na True.

Asi nemám správně nastavenou komponentu FdConnection, aby to rozpadnutí bylo automaticky rozpoznáno, ale nevím jakou  :(

Díky moc za radu a nasměrování.
Iken

Online Delfin

  • Hrdina
  • ****
  • Příspěvků: 440
  • Karma: 23
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Firedac - vypnutí serveru
« Odpověď #1 kdy: 17-08-2017, 08:03:17 »
Neprobehne, protoze FireDAC neresi, zda je server v momente kdy neprobiha zadna komunikace mezi driverem a DBMS "online". Muze se ale pokusit spojeni sam obnovit (viz. Recovering Connection) pokud je to mozne, a dokaze o vypadku spojeni informovat v podobe vyjimky (viz. Handling Errors), napr.:

Kód: Delphi [Vybrat]
  1. try
  2.   FDQuery.Open;
  3. except
  4.   on E: EFDDBEngineException do
  5.     if E.Kind = ekServerGone then
  6.     begin
  7.       ShowMessage('Server neni dostupny!');
  8.       ...
  9.     end
  10.     else
  11.       raise;
  12. end;

Connected je jen stavova property. Server se da v pripade zjisteni vypadku, nebo jen tak pro "dobry pocit" zjisteni "online" stavu otravovat metodou Ping.
« Poslední změna: 17-08-2017, 08:06:38 od Delfin »
A co chudinky ovce? Koupíš jim snad plovací vesty? Nebo jim nasadíš chůdy? Ještě lepší, kdybys je zkřížil s delfíny na ovce hopkavé!

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: