Forum Delphi.cz

Delphi => FireDAC => Téma založeno: Stanislav Hruška 17-09-2021, 14:03:31

Název: Zavolať Commit pri neúspechu - vyvolanej výnimke.
Přispěvatel: Stanislav Hruška 17-09-2021, 14:03:31

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?
Název: Re:Zavolať Commit pri neúspechu - vyvolanej výnimke.
Přispěvatel: pf1957 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
Název: Re:Zavolať Commit pri neúspechu - vyvolanej výnimke.
Přispěvatel: Stanislav Hruška 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.
Název: Re:Zavolať Commit pri neúspechu - vyvolanej výnimke.
Přispěvatel: Jirka 17-09-2021, 15:27:26
Co zkusit CommitRetaining ?
Název: Re:Zavolať Commit pri neúspechu - vyvolanej výnimke.
Přispěvatel: Stanislav Hruška 17-09-2021, 17:03:21
Commit je v poriadku. Vo výpočte sa nedá ďalej pokračovať - je narušená integrita údajov.
Název: Re:Zavolať Commit pri neúspechu - vyvolanej výnimke.
Přispěvatel: Jirka 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?
Název: Re:Zavolať Commit pri neúspechu - vyvolanej výnimke.
Přispěvatel: Stanislav Hruška 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.