🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: free.it.visual-basic
Article #2246

Re: ADO.NET - Bloccare la lettura di una tabella

#2246
From: Raffaele Rialdi
Date: Mon, 23 Jun 2003 22:28
37 lines
2860 bytes
> la tabella (A) di fatto non viene mai modificata, viene solo letta.
Questo mi fa escludere qualsiasi meccanismo di locking e mi convince ancora
di pi� sulla mia prima proposta.


> l'utente si ritrova un elenco di prodotti da pagare, (da pagare anche
> parzialmente). Questo elenco viene generato da una query es:
>
> 2    caff�            2
> 3    Pane            6
>
> Da notare che il latte non c'� pi� in quanto gi� pagato totalmente.
> la questione �: se due utenti leggono i dati dei prodotti da pagare
vedranno
> le stesse informazioni, potranno selezionare gli stessi prodotti, ma al
> momento di dare ok solo uno di loro due deve riuscire a pagare ci� che ha
> selezionato.
Credo che tu possa risolvere solo con la query di update. Nella where della
update dovrai controllare se il prodotto � gi� stato pagato interamente, e
in questo caso l'update avr� luogo.
Cos� facendo, quando il primo utente tenta di pagare il Pane, riuscir�. Il
secondo utente invece si vedr� rispondere picche dal db perch� la where avr�
una condizione false che impedir� l'update.

Visto che le query al db vengono di default gestite in sequenza (il
meccanismo � pi� complesso ma grossolanamente si pu� approssimare ad un mero
accodamento), gestendo la giusta clausola where riesci ad evitare meccanismi
di locking o altre cose astruse.

Se il ragionamento dovesse essere pi� complesso, potrebbe convenire inserire
un 'middle tier' che si mette in mezzo tra i fruitori dei dati e il db. In
questo modo il middle tier saprebbe quale operazione fare e come eseguirla
perch� sarebbe lui stesso l'imbuto verso il db.

-- 
Raffaele Rialdi
UGIdotNET - User Group Italiano .NET  http://www.ugidotnet.org
Technical Details
Message-ID: <OQBUGbdODHA.2228@tk2msftngp13.phx.gbl>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!msrtrans1!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl
References: <8W%Ia.108224$Ny5.3122798@twister2.libero.it> <#hbR2bQODHA.2172@TK2MSFTNGP10.phx.gbl> <4oAJa.111908$Ny5.3241362@twister2.libero.it>

Show Full Headers
Complete Article Headers
X-Google-Language: ITALIAN,ASCII
X-Google-Thread: f94ee,fa2856aabc00a4a8
X-Google-Attributes: gidf94ee,public
X-Google-Thread: 10b997,fa2856aabc00a4a8
X-Google-Attributes: gid10b997,public
X-Google-Thread: 10c104,fa2856aabc00a4a8
X-Google-Attributes: gid10c104,public
X-Google-ArrivalTime: 2003-06-23 15:30:11 PST
From: "Raffaele Rialdi" <malta@n0spam_vevy.com>
References: <8W%Ia.108224$Ny5.3122798@twister2.libero.it> <#hbR2bQODHA.2172@TK2MSFTNGP10.phx.gbl> <4oAJa.111908$Ny5.3241362@twister2.libero.it>
Subject: Re: ADO.NET - Bloccare la lettura di una tabella
Date: Tue, 24 Jun 2003 00:28:41 +0200
Lines: 39
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Message-ID: <OQBUGbdODHA.2228@tk2msftngp13.phx.gbl>
Newsgroups: free.it.visual-basic,it.comp.lang.visual-basic,microsoft.public.it.dotnet.vstudio
NNTP-Posting-Host: 62.101.97.7
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!msrtrans1!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl