DataSet a spojnosc danych i polaczenia

0

Witam

Dwa pytania odnośnie DataSet i w ogóle bezpolaczeniowej filozofii w .NET.

  1. Jak framework zapewnia nas czy w ogóle nas zapewnia, ze w momencie wykorzystania datasetu (czyli offlinowej kopii danych z db) spojnosc danych, czyli podstawy funkcjonowania db (chodzi mi o ACID). Wezmy przyklad. Aplikacja pozawala w datagridzie edytowac rekordy, i dwie osoby naraz korzystaja z tych samych danyc, obie otwieraja aplikacje i zastanwaiaja sie co zrobic. Wtem jedna kasuje pierwszy rekord. Druga nadal go widzi bo w datasecie jest i wpada na pomysl aby go zmodyfikowac. W momencie proby zapisu - aplikacja powinna sie wykrzaczyc bo juz tego rekordu nie ma .... smierdzdi mi strasznie takie podejscie :) wytlumaczcie mi prosze jak to z tym jest bo mam nadzieje ze sie myle.

  2. Jak to jest z tymi polaczeniami. Przeczytalem dzis na stronach MS aby po kazdej operacji zamykac i potem znow otwierac nowe polaczenie... pytam sie poco !? czy to nie strata zasobow przeciez takie opoeracje sa bardzo czasochlonne i zasobozerne.

Prosze o wskazówki albo jakies fajne materialy bo dopiero poznaje .Neta i jakos mi sie za bardzo to srodowisko nie podoba.

pozdr

0

1 - nie zapewnia.. mozesz co najwyzej sobie lock'a na tablice albo rekord zalozyc.. albo siedziec w transakcji, ale gdzie tu bezpolaczeniowosc wtedy :) tak, smierdzi. tak, trzeba uwazac na wyjatki i kody bledow ze storedprocedure's
2 - ogolnie, tak, jest strata. w szczegolach - gdzies w glebi .net chyba je sobie cache'uje i jak tworzysz nowe identyczne to tak na prawde przywraca do zycia stare. ale juz to tylko moja zgadywanka

0
  1. Dataset trzyma rozne wersje wiersza. Wystarczy sprawdzic czy oryginal zgadza sie z tym co jest w bazie przed zapisem, jezeli nie, to poinformowac uzytkownika.
  2. Nie ma starty dzieki connection poolingowi. Poczytajcie o tym :) Kazde otwarte polaczenie z identycznym connection stringiem podchodzi pod ten sam connection pool.
0

1' zakladajac ze baza danych to wersjonowanie obsluguje :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1