Article View: free.it.visual-basic
Article #2246Re: ADO.NET - Bloccare la lettura di una tabella
From: Raffaele Rialdi
Date: Mon, 23 Jun 2003 22:28
Date: Mon, 23 Jun 2003 22:28
37 lines
2860 bytes
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.gblReferences:
<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