Article View: free.it.visual-basic
Article #2244Re: ADO.NET - Bloccare la lettura di una tabella
From: Raffaele Rialdi
Date: Sun, 22 Jun 2003 21:41
Date: Sun, 22 Jun 2003 21:41
58 lines
3143 bytes
3143 bytes
Bloccarla sarebbe terribile dal punto di vista delle performance e della scalabilit�. Potresti pi� semplicemente ricontrollare, al momento dell'update sulla B, che i record in A non siano cambiati rispetto ai valori letti durante la prima select. In questo modo non devi eseguire locking e con una sola Update (senza necessit� neppure di transaction) aggiorni i dati sulla B Il wizard di VS, quando crea le vari query di update e delete, costruisce le query proprio con il controllo che i dati presenti su db siano gli stessi di quelli letti al momento della prima select. Questo grazie al fatto che i dataset mantengono lo stato delle righe fino a che non viene fatto AcceptChanges o RejectChanges (infatti la prima viene chiamata da Update, se tutto va bene). Certo che se i dati della tabella A continuano a variare cos� tanto da far fallire molto spesso gli update puoi ricorrere ad un lock logico (una tabella Locks su cui scrivi gli id impegnati). Questo per� compromette comunque le performance e la scalabilit� dell'applicazione. -- Raffaele Rialdi UGIdotNET - User Group Italiano .NET http://www.ugidotnet.org "Netslacker" <netslacker@iname.com> wrote in message news:8W%Ia.108224$Ny5.3122798@twister2.libero.it... > Salve a tutti. Sto realizzando una funzione che legge alcuni record da una > tabella (A), esegue dei calcoli e aggiorna un'altra tabella (B). > > Visto che il programma, e la funzione in questione, pu� essere utilizzato da > pi� persone insieme e contemporaneamente, ho la necessit� di bloccare in > lettura la tabella (A) il tempo necessario per eseguire i calcoli e > aggiornare la tabella (B). > > Ho provato con le SqlTransaction con pessimi risultati: sono riuscito solo > ad fare eventualemente il Rollback > > Sto pensando di utilizzare dei semafori > > Esiste qualcosa in SQL: un comando SELECT ... che inibisca la lettura per > una cerchia di record ? > > datemi un consiglio .... > > > Grazie. > > P.S. per la funzione che sto realizzando la gestione dei conflitti, in fase > di salvataggio, non va bene > > >
Technical Details
Message-ID:
<#hbR2bQODHA.2172@TK2MSFTNGP10.phx.gbl>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!msrtrans1!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP10.phx.gblReferences:
<8W%Ia.108224$Ny5.3122798@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: 10c104,fa2856aabc00a4a8 X-Google-Attributes: gid10c104,public X-Google-Thread: 10b997,fa2856aabc00a4a8 X-Google-Attributes: gid10b997,public X-Google-ArrivalTime: 2003-06-22 14:43:11 PST From: "Raffaele Rialdi" <malta@n0spam_vevy.com> References: <8W%Ia.108224$Ny5.3122798@twister2.libero.it> Subject: Re: ADO.NET - Bloccare la lettura di una tabella Date: Sun, 22 Jun 2003 23:41:04 +0200 Lines: 60 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: <#hbR2bQODHA.2172@TK2MSFTNGP10.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!TK2MSFTNGP10.phx.gbl