Obsah


1 - Problém
2 - Příčina
3 - Řešení
4 - Klíčová slova

1 - Problém

Při ukládání dat se zobrazí chyba:

Po kliknutí na tlačítko Podrobnosti uvidíte:


Concurrency violation: the UpdateCommand affected 0 of the expected 1 records.

All messages:
- Concurrency violation: the UpdateCommand affected 0 of the expected 1 records.
- Exception has been thrown by the target of an invocation.
- Server was unable to process request.
- Concurrency violation: the UpdateCommand affected 0 of the expected 1 records.
- Exception has been thrown by the target of an invocation.
- Server was unable to process request.

Level 0
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Message:
Server was unable to process request. - - -> Exception has been thrown by the target of an invocation. ---> Concurrency violation: the UpdateCommand affected 0 of the expected 1 records.
TargetSite:
ChybaDatoveVrstvy
ReflectedType:
Evolio_data.Evolio.DataAccessLayer.DatovaVrstvaKlient


2 - Příčina

  • Došlo ke konfliktu v ukládaných datech – jako příklad je nejčastěji uváděná souběžná práce dvou uživatelů, kteří mění stejná data.
  • V praxi ale tato situace daleko častěji nastává i při práci jednoho uživatele – obvykle jde o sled úprav, kdy jsou data upravována několikrát, uživatel se k nim vrací, znovu je mění.

3 - Řešení

  • Pokud se takové hlášení vyskytne, obvykle nezbývá než okno zavřít křížkem nebo stornem a data aktualizovat.
  • Ošetření takových stavů je programátorsky velmi náročné, protože nelze předpovědět všechny varianty toho , co uživatel udělá.

4 - Klíčová slova

Concurrency violation, konflikt, ukládání, uložit, datová vrstva