Usporedba timestampa

poruka: 5
|
čitano: 1.555
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
protjeran
offline
Usporedba timestamp-a

Nisam baš previše vješt u sql-u pa me zanima da li itko može napisati primjer stored procedure kojoj se kao paramteri predaju stupci neke tablice i timestamp (također kao stupac), na način da klijent predaje svoj timestamp, a da stored procedura ga uspoređuje sa timestamp-om na serveru.

 

Točnije, treba mi primjer rješenja optimistične konkurentnosti upotrebom timestamp-a (server preko stored procedure update-a zapise i baca iznimke klijentu ukoliko se dogodi konkurencija, a to provjerava usporedbom timestampa preko stored procedure).

Poruka je uređivana zadnji put pon 12.1.2009 11:25 (Tracer).
Moj PC  
0 0 hvala 0
17 godina
offline
Usporedba timestamp-a

Samo pitanje. To je nešto kao "optimistic locking". Pa ako se ne varam većina današnjih baza podataka ima to već integrirano kad se radi s transakcijama... Sad možda to nije to što ti trebaš...

"Genius might be the ability to say a profound thing in a simple way." Charles Bukowski
 
0 0 hvala 0
17 godina
protjeran
offline
Usporedba timestampa

Da. Napisao sam da je riječ o optimističnom zaključavanju (konkurentnosti). Ima baza to integrirano na način da mi baca exception poput "row cannot be located for update" i onda ja moram hvatati preko toga da li se nešto dogodilo ili ne. Ali imam s time problema na SQL Serveru 2005 jer mi cijeli dataset se tada "sruši" tj. podaci se izmješaju nakon ponovnog spajanja na sql server.. dok na SQL Serveru 2008 sve radi bez problema. Valjda je neki bug bio u pitanju na 2005 verziji. No, nekako mi je najbolje da radim preko stored procedure pa neka se server "zeza" s updateima zapisa. Samo mi treba taj sql code da vidim na koji način uspoređujem dolazni (klijentski) timestamp i onaj na serveru (trenutno upisani u record).

 

Ono što mi trenutno pada na pamet je

 

Select * from dbo.tablica where ID = KlijentskiID and timestamp = KlijentskiTimeStamp

if count == 0

raiseerror "banana!"

...

 

ovo sam sada više pisao u pseudo kodu, ali mislim da je jasno što želim postići.

Poruka je uređivana zadnji put pon 12.1.2009 15:21 (Tracer).
Moj PC  
0 0 hvala 0
17 godina
offline
RE: Usporedba timestampa

Aha kužim, budem ti pogledao dok se vratim doma, na poslu imam samo ORACLE, a to je PL/SQL, a tebi treba transact a neznam napamet baš svu sintaksu (ono tko bi sve to pamtio).. Pa ako ne prije, javim ti se oko 18h.

Inače neznam sad za Sql server, ali znam da Postgre ima u svojim sistemskim tablicama informacije o tome kad se zadnji put pristupalo kojem resursu itd... , pa tako da uopće ne moraš korisiti timestamp u svojoj tablici. Budem pogledao dok dođem doma, pa se javim, ako ti nije preksano oko negdje 18h

 

EDIT : "Optimistic locking" nisam nikad prevađao na HR, tak da stvarno nisam znao da se to prevodi u "optimističnu konkurentnost"SmijehBelji se

"Genius might be the ability to say a profound thing in a simple way." Charles Bukowski
Poruka je uređivana zadnji put pon 12.1.2009 15:32 (dado2202).
17 godina
protjeran
offline
RE: Usporedba timestampa

ma nigdje se ti ne žuri ;) neka bude i sutra i opet super. hvala

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice