[ digitall1982 @ 29.04.2007. 13:38 ] @
ovako, kada ucitam podatke sa severa u dataset, dali se ti podaci mogu zakljucati na serveru dok se ne obave neka azuriranja i sl.? dali to ado uopce podrzava i kako to ide. ili bas moram napraviti transakciju (proceduru) na serveru koja ce zakljucati podatke (set transaction isolation level serializable) dok ne obavi sve promjene u svim tablicama.
pitam zbog toga sto se moze desit da neko od klijenata promjeni neki podatak u jednoj od tablica dok se izvrsavaju promjene koje koriste tocno taj podatak.
a taj podatak je ranije ucitan u dataset
net 2.0

hvala
[ mmix @ 01.05.2007. 15:44 ] @
mogu, ali ne bi trebao to da radis. Problem koji ti imas se zove "data concurrency" i postoji dosta resenja od kojih je to koje si napomenuo definitivno najgore. Morao bi da otvoris transakciju na klijentu, da zakljucas red/page/tableu kroz WITH hint i da drzis konekcije/transakciju otvorenom dok korisnik ne zavrsi promenu. Za to vreme ce drugi korisnici traziti te podatke i bice posledica u zavisnosti od stepena izolacije. Medjutim, posledice ovakvog resenja se ne rangiraju od "dobrog" ka "losem" vec od "mnogo loseg" do "katastroficnog"


Probaj ovaj search: Google: "data concurrency ado.net" i procitaj par clanaka, trebalo bi da ti daju neke hintove kako da ovo resis elegantnije u zavisnosti od toga sta hoces da postignes.
[ Mr. Rejn @ 01.05.2007. 15:55 ] @
Evo jednog primera sa CodeProject (baš sam njega listao kada sam video
ovaj post) za tu vrstu problema,odnosi se na Oracle,verovatno
je primenljiv u slučaju drugih servera:
http://www.codeproject.com/cs/database/concurmodel.asp
[ digitall1982 @ 02.05.2007. 20:06 ] @
hvala na ogdovorima..
tako sam i mislio da tu ima komplikacija..
pa najjednostavnije je onda koristiti proceduru spremljenu na serveru kojoj prosljedim parametre (od korisnika) i koja ce biti transakcija najvece izlolacije, tj zakljuca sve podatke za mjenjanje do kraja transakcije dok se sve tablice ne apdejtaju..