AWWW-1st3.6-w09.tresc-1.0-Slajd25

From Studia Informatyczne

Uaktualnianie bazy danych poprzez DataAdapter i DataSet (2/2)

Uaktualnianie bazy danych poprzez  DataAdapter i DataSet (2/2)


Obiekt DataSet, z racji przeznaczenia do pracy w trybie odłączonym, został zaprojektowany z myślą o optymistycznym zarządzaniu współbieżnością. Przypomnijmy, że pesymistyczna strategia zarządzania współbieżnością wiąże się z blokowaniem danych i wymaga utrzymywania połączenia z bazą danych, więc jest nieodpowiednia dla pracy z obiektami DataSet. Strategia optymistyczna dopuszcza ryzyko modyfikacji danych przez innego użytkownika w okresie między wypełnieniem obiektu DataSet danymi metodą Fill(), a uaktualnianiem bazy danych metodą Update() obiektu DataAdapter. Problem ten można minimalizować poprzez odświeżanie zawartości DataSet przez ponowne wywołanie Fill() lub implementację zarządzania współbieżnością w oparciu o etykiety czasowe dodane do wierszy tabel bazy danych.

Metoda Update() przenosząca zmiany w obiekcie DataSet musi wiedzieć, które wiersze zostały zmodyfikowane, usunięte i dodane. W tym celu DataSet zawiera cztery wersje każdego wiersza. Oprócz aktualnej (Current) pamiętana jest odczytana z bazy (Original), a ponadto domyślna (Default) i będąca przedmiotem edycji (Proposed). Ponadto, dla każdego wiersza w DataSet pamiętany jest jego stan, który może przyjąć jedną z pięciu wartości: Added – dodany; Deleted – usunięty; Detached – utworzony, ale niedodany do kolekcji wierszy lub usunięty, ale jeszcze niezniszczony; Modified – zmodyfikowany; Unchanged – niezmodyfikowany.


<< Poprzedni slajd | Spis treści | Następny slajd >>