Autor Téma: Zavolať Commit pri neúspechu - vyvolanej výnimke.  (Přečteno 433 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5916
  • Karma: 43
    • Verze Delphi: W10 + D11

Mám výpočet ktorý sa vykonáva v jedinej transakcii. Výpočet spočíva v postupnom volaní Query.Execute. Používam tam aj GTT.
Teraz mi tam nečakane vyskočila chyba, že hodnota je null. Potrebujem zistiť prečo.
Problém je v tom, že sa vyvolá výnimka s ňou Rollback. Samozrejme, že Commit neprejde. Všetky tabuľky s výpočtom tak mám prázdne. Exituje nejaká možnosť zavolať Commit pre predchádzajúce úspešné operácie?
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3280
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Zavolať Commit pri neúspechu - vyvolanej výnimke.
« Odpověď #1 kdy: 17-09-2021, 14:25:31 »
Problém je v tom, že sa vyvolá výnimka s ňou Rollback. Samozrejme, že Commit neprejde. Všetky tabuľky s výpočtom tak mám prázdne. Exituje nejaká možnosť zavolať Commit pre predchádzajúce úspešné operácie?
Tak ten Rollback docasne nahrad Commitem

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5916
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Zavolať Commit pri neúspechu - vyvolanej výnimke.
« Odpověď #2 kdy: 17-09-2021, 15:06:01 »
To som skúšal, len som sa pozrel do nesprávnej tabuľky a tak som si myslel, že to nefunguje.
Ďakujem.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Jirka

  • Hrdina
  • ****
  • Příspěvků: 429
  • Karma: 9
    • Verze Delphi: XE2
Re:Zavolať Commit pri neúspechu - vyvolanej výnimke.
« Odpověď #3 kdy: 17-09-2021, 15:27:26 »
Co zkusit CommitRetaining ?

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5916
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Zavolať Commit pri neúspechu - vyvolanej výnimke.
« Odpověď #4 kdy: 17-09-2021, 17:03:21 »
Commit je v poriadku. Vo výpočte sa nedá ďalej pokračovať - je narušená integrita údajov.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Jirka

  • Hrdina
  • ****
  • Příspěvků: 429
  • Karma: 9
    • Verze Delphi: XE2
Re:Zavolať Commit pri neúspechu - vyvolanej výnimke.
« Odpověď #5 kdy: 17-09-2021, 19:31:06 »
Commit je v poriadku. Vo výpočte sa nedá ďalej pokračovať - je narušená integrita údajov.

Asi (opět) nerozumím. Já reagoval na otázku :
Citace
Exituje nejaká možnosť zavolať Commit pre predchádzajúce úspešné operácie?

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5916
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Zavolať Commit pri neúspechu - vyvolanej výnimke.
« Odpověď #6 kdy: 17-09-2021, 21:02:51 »
Otázke rozumieš dobre a Commit to rieši. Tak ako to napísal aj pf1957.
Použil som ho v try - except - Tu, namiesto Rollback
Vďaka tom mám problém vyriešený. Chybné boli vstupné údaje - zlá kontrola.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.