Autor Téma: Debbug - GTT voči RunTime persistent table  (Přečteno 6394 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4426
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #15 kdy: 19-06-2018, 09:24:28 »
Citace
Nevim, co je na tabulkach necisteho
Na samotných tabuľkách nič. Len pri ich použití mám/PC prácu navyše. Pri trvalých tabuľkách automaticky definujem Foreign key. Bez nich si to nedovolím - určil som si také pravidlo. A už vďaka tomu nabieha navyše práca s indexmi + veľkosť DB. Prosím nekomentovať veľkosť DB :)
Citace
Ale pak bych se vratil k myslence pro ucely ladeni si udelat "vizualizaci" tech dat v GTT, treba triggerem, ktery je prekopiruje do presistentni tabulky. Pak u produkcni DB dropnes jen ty triggery a tabulky. A before insert triggerem si zjistis, jestli je GTT prazdna a jestli ano, tak smazes data z te kopie.
To mi akosi nesedí. Nevidím na to dôvod. Pri ladení budem používať len GTT. Možno to je myslené ako ochrana proti zaneseniu chýb do program. V takom prípade by som o tom mal uvažovať.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2593
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #16 kdy: 19-06-2018, 09:26:57 »
To mi akosi nesedí. Nevidím na to dôvod.
A ja mel za to, ze cely cirkus s GTT vymyslis kvuli ladeni, aby videl na data i po skonceni transakce. Pokud ne, tak bych to uz vubec neresil.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4426
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #17 kdy: 19-06-2018, 09:30:42 »
Citace
A ja mel za to, ze cely cirkus s GTT vymyslis kvuli ladeni, aby videl na data i po skonceni transakce.
Presne tak!!!
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2593
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #18 kdy: 19-06-2018, 09:34:57 »
Citace
A ja mel za to, ze cely cirkus s GTT vymyslis kvuli ladeni, aby videl na data i po skonceni transakce.
Presne tak!!!
No a tak bych si je z GTT kopiroval triggerem do nejake presistentni tabulky se stejnou strukturou, kde bych se na data mohl divat. A pak bych to odstranil. A kod aplikace by o tom vubec nevedel, jen by to zralo nejaky cas na ty kopie.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4426
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #19 kdy: 19-06-2018, 09:39:25 »
Už mi to došlo ;D , len si ma predbehol v napísaní reakcie. Myslím si, že už je rozhodnuté. Len si premyslieť aplikovanie. Trochu ma mätie ten triggert, ale to si doštudujem. Asi máš na mysli niečo ako "After Insert". Aplikácia o tom bude vedieť. Veď sa musí rozhodnúť, či mazať, alebo nemazať tie údaje.
Ďakujem.
« Poslední změna: 19-06-2018, 09:41:07 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4426
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #20 kdy: 19-06-2018, 09:51:05 »
Mne by sa viac páčilo, keby sa triggert nespustil, keď neexistuje trvalá tabuľka. Presnejšie, spustil by sa, ale po vyhodnotení podmienky aj hneď ukončil. Ja viem, je to pre DB práca navyše = nie je to čisté :D
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2593
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #21 kdy: 19-06-2018, 10:09:17 »
Mne by sa viac páčilo, keby sa triggert nespustil, keď neexistuje trvalá tabuľka. Presnejšie, spustil by sa, ale po vyhodnotení podmienky aj hneď ukončil. Ja viem, je to pre DB práca navyše = nie je to čisté :D
Proc bys to delal? Kdyz neexistuje trvala tabulka, tak bud neexistuje trigger nebo ja zablokovany a vice versa, kdyz se vytvori trvala tabulka, tak se vytvori i replikacni trigger nebo se enabluje.

Takze pri vyvoji vytvoris trvalou tabulku a replikacni trigger, v produkci je smazes. A pri vyvoji, kdyz nebudes chtit replikovat, tak ten trigger zakazes a on bude existovat, ale nebude se pouzivat.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2593
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #22 kdy: 19-06-2018, 10:29:09 »
máš na mysli niečo ako "After Insert". Aplikácia o tom bude vedieť. Veď sa musí rozhodnúť, či mazať, alebo nemazať tie údaje.
To muze delat treba i ten trigger nezavisle na aplikaci - ta to oznami commitnutim transakce a vyprazdnenim GTT. Takze kdyz v BeforeInsert triggeru bude GTT prazdna, tak to znamena, ze se spustilo nove zpracovani v nove transakci a muze vyprazdnit nejdriv trvalou tabulku. Totez muze udelat i s AfterInsert, kdy zjisti, jestli prave vlozeny zaznam je jediny v GTT nebo muzes mit triggery dva: before na hlidani noveho zpracovani a after na replikaci dat.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4426
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #23 kdy: 19-06-2018, 10:36:19 »
Citace
Takze kdyz v BeforeInsert triggeru bude GTT prazdna, tak to znamena, ze se spustilo nove zpracovani v nove transakci a muze vyprazdnit nejdriv trvalou tabulku.
Výborne, to sa mi páči.
S triggert-om som pracoval kedysi dávno a tak o ich možnostiach nemám predstavu.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4426
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Debbug - GTT voči RunTime persistent table
« Odpověď #24 kdy: 19-06-2018, 20:48:24 »

Citace
Muzes i pred smazanim te tabulky (tj. pred ukonceni transakce nebo spojeni) ziskat jeji obsah ze sve aplikace (jednoduse SELECTtem
To viem. Veď bez toho by mi boli nanič.
Riešenie pomocou spúští sa mi veľmi páči. Nebudem zasahovať do zdrojáku. A v DB tie spúšte budem kopírovať a len zmením  názvy tabuliek. Krása :D
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.