Autor Téma: IBX komponenty a rekonexe k databazi, potazmo legalni ukonceni programu  (Přečteno 3323 krát)

Offline Wormik

  • Nováček
  • *
  • Příspěvků: 2
  • Karma: 0
Presel jsem z Delphi 7 na Delphi XE a zjistil ze IBX komponenty maji stejny problem jako v dobe D7  :'(  a to je pokud je otevrena konexe na databazi (firebird 2.5) dojde k preruseni komunikace (napr odpojeni/pripojeni k siti) tak IBX komponenty vygeneruji nekolik neosetrenych vyjimek, ktere vetsinou nejdou ani odchytnout, uzivatele nuti k jejich odklikani a do ukonceni aplikace nejde uz novu s IBX nic delat... Proto se ptam jestli nedelam neco spatne divim ze ze by takovy zasadni BUG prezil az do dnes? :-\

yamaco

  • Host
Zdravím, osobně jsem IBX komponenty přestal používat před mnoha lety právě kvůli jejich chybovosti a "nevývoji". Ve všech svých aplikacích používám FIB Plus sadu (prokazatelně rychlejší přístup k datům než via IBX, řada nových užitečných metod) a kvalitní je i sada od Devartu (využívám jejich analogie pro MS SQL a Oracle).

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 577
  • Karma: 25
tak IBX komponenty vygeneruji nekolik neosetrenych vyjimek, ktere vetsinou nejdou ani odchytnout, uzivatele nuti k jejich odklikani

něco podobného dělal třeba i standardní TClientSocket. U něj se to dalo vyřešit tak, že se odchytil nějaký jejich speciální event (OnError nebo tak nějak) a nastavil se errorCode na 0. Třeba to bude podobné?

a do ukonceni aplikace nejde uz novu s IBX nic delat... Proto se ptam jestli nedelam neco spatne divim ze ze by takovy zasadni BUG prezil az do dnes? :-\

podobně blbě se standardně chovaly TAdoQuery/TAdoConnection a spol. Ty zase mají nějaký parametr, který určuje, jestli se má připojení držet otevřené (jinak se to připojuje pokaždé znovu a je to pomalejší). V případě výpadku spojení se to už ale nebylo schopné připojit. Řešením bylo vypnout tu property (něco jako KeepConnection) a po úspěšném připojení zase nastavit.