Autor Téma: Odkud je aplikace spuštěna.  (Přečteno 335 krát)

Offline xnukes

  • Mladík
  • **
  • Příspěvků: 62
  • Karma: 1
    • Verze Delphi: XE7
    • Bludspeed s.r.o.
Re:Odkud je aplikace spuštěna.
« Odpověď #15 kdy: 06-11-2017, 10:58:48 »
Ak som správne pochopil, podporuje to tzv. locking, viď https://www.elevatesoft.com/manual?action=viewtopic&id=dbisam4&product=delphi&version=5&topic=locking_concurrency

1. varianta
Vytvoríš nejakú tabuľku a pri štarte ju zamkneš, pri ukončení ju odomkneš. Neviem však ako by sa to chovalo pri páde
aplikácie, a či je nejaká možnosť urobiť unlock cez nejaké obslužné utility.

2. varianta
Použiješ Semaphore Lock
Riziko je tam podobné ako pri variante 1 pri páde aplikácie, či je možnosť odomknúť semafor.

3. varianta - prerobiť to na sieťovú verziu  ;)

Ja by som použil takéto riešenie:
Vytvor tabuľku napr. pristupy ktorá bude mať jeden stlpec napr. used (Int) a zapisovať sa budú hodnoty 0 (voľná) a 1 (obsadená).
Ak sa spustí aplikácia, vojde do tabuľky a zistí aká hodnota je tam zapísaná. Ak je tam 0, zapíše tam 1. Pri ukončení tam aplikácia zapíše 0.
Ak sa spustí aplikácia druhý krát a bude tam 1, tak vypíše hlásenie, že sa jedná o duplicitné spustenie a ukončí sa.

Samozrejme si tiež priprav aplikáciu, ktorá to prepíše na 0, keď ti spadne tá prvá spustená aplikácia a teda neprepíše 1 na 0  ;D

Ja som toto používal ešte od v časoch xbase (dBase - Clipper), aby som vedel ako mi skončila aplikácia kvoli indexom. Ak tam bola 1, automaticky som robil reindexáciu.

Pád aplikace by se dalo vyřešit timestampem, že budeš testovat zda timestamp uložený bude menší o několik než now :)) Každopádně napsat si vlastní lock bude nejlepší varianta :)

 

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í:
Křestní jméno zpěváka Gotta: