Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Bloccare accesso a record già aperto da altro Utente

Spiego meglio il Subject.
Ho fatto un programma di gestione clienti che gira in rete su 3 pc ed il db
(access..visto che c'è ne solo 3 ) risiede su un solo pc e gli altri client
accedono questo db.
Ho la necessità di notificare l'uso e la modifica di un record quando un
utente ci stà già lavorando. Cioè se io lavoro sul record numero 100, e un
altro utente dei 3 richiede questo record, il programma deve avvertire che
in quel momento non è possibile accedere a quel record perché già in uso.
Non riesco a trovare il modo per rendere esclusiva l'apertura di un record
( o di un gruppo di record).
Semplicemente spero esista un modo per far si che alla richiesta del record
venga restituito un errore, ma in questo momento non ho proprio capito come
si può fare.
Se qualcuno ha giàa affrontato questo problema mi faccia sapere o mi dia
solo una traccia che mi porti sulla buona strada!
grazie mille a tutti e scusate se non son riuscito a spiegarmi 
bene(chiedete pure spiegazioni...va tutto a mio favore se ve ne interessate 
:)))) ).
Ciao SIMO
-- 
__________________
www.sasim.net
  ||  
http://sasim.dnsart.com
* Server IRC : 
irc.azzurranet.org
 --> Canale: #it_lang_vb
* Sito Comune Ng: 
http://www.it-lang-vb.net
* Manifesto del Ng: 
http://www.it-lang-vb.net/docs/Manifesto.txt
* I vecchi messaggi su: 
http://groups.google.com/

 accedono questo db.
[cut]
Crea nel db una tabella dove segni tutti i record in uso dagli utenti.
Quando accedi a un record in modifica vedi prima in questa tabella se il
record stesso è utilizzato in quel momento: se no lo segni fra quelli
utilizzati  e procedi con la modifica; se sì ne impedisci la modifica con un
messaggio di avviso. Quando un utente termina la modifica cancelli la riga
corrispondente nella tabella dei record in uso
Ciao

 ha scritto nel messaggio
news:3C6698DF...@libero.it...
CUT
A parte la soluzione che già ti hanno dato....
Il lock pessimistico non fa al tuo caso?
Certo consumando molte risorse:
Un open Dynamic ed un lock pessimistic?
Ciauz.....ci vediamo al meeting?


A proposito di meeting, è possibile venire a fare solo un saluto vero?
Si sa già dove, cioè in che locale? Per la città mi sembra che la
maggioranza abbia votato Bologna...
A che ora?
Vorrei dire a tutti che per me il 9 và benissimo, però il 2-3 c'è
l'exporadio a faenza e magari a qualcuno del NG potrebbe interessare farci
un salto, prendendo 2 piccioni con una fava se il meeting fosse nella stessa
data.
Ciauz!
Davide

Puoi alternativamente sulla stessa tabella avere una data di ultima
modifica.
Fai in modo che chiunque possa leggere il record e lavorarci nel suo
terminale, ma al momento della modifica controllare se la data immagazzinata
al retrieving delle informazioni coincide con quella nel db.
Se nel mentre qualcuno ha modificato il record, la data cambia e quando
il secondo utente tenta la sottomissione delle nuove modifiche restituisci
errore dicendo che il record è stato aggiornato da un altro utente.
Così facendo non devi fare nessun lock, nessun dispendio di memoria,
nessuna tabella aggiuntiva.
Ha il solo svantaggio che se due effettivamente devono lavorare sullo
stesso record contemporaneamente per aggiornare due campi diversi,
ovviamente non possono farlo ... ma è uno svantaggio un pò particolare che
difficilmente andrebbe contemplato in una applicazione con db di qualsiasi
natura.
Ciao
Andrea