Newsgroup: it.comp.lang.visual-basic
Titolo: ADO 2.6 e Locking

Scusate la domanda da gnorante ma mi assilla da un po' di tempo.
Ho una form che e' in grado di aprire una sorgente dati su SQL con un
recordset ADO 2.6 e di controllare il locking per gestire la multiutenza (se
un utente e' in modifica su un record altri utenti non possono accere al
record).
Il problema e' che in effetti se un utente ha un record aperto in modifica
altri utenti non possono accedere ad esso e la procedura attende fino a che
non si sblocca, ma io vorrei far comparire all'utente che sta aspettando che
c'e' un altro utente che sta modificando il record.
Come posso fare in modo che esca un avviso del genere?
Grazie a tutti
Claudio

 Come posso fare in modo che esca un avviso del genere?
non so che tecnica tu abbia usato per il lock...ma se hai usato direttamente
le proprietà ADO mi sa che ci sono poche speranze...a meno che non capti
qualche erorre generato in fase di lettura di un recod lockato.
Io ho risolto, anche se in modo un po blando, inserendo un campo IdUtente
nelle mie tabelle. Quando un utente apre un record mette il suo Id univoco
in quel campo, a meno che non vi sia già un valore, e in quel caso gli
notifico la cosa e gli mostro i dati disattivando il pulsante Ok del
dialogo. Al termine dell'editazione il campo IdUtente viene azzerato
consentendo ad altri di aprirlo.
La cosa mi sembra funzionare molto bene e fino ad ora non ha dato nessun
inconveniente. In alternativa se non vuoi aggiungere ad ogni tabella il
campo IdUtente, puoi fare una tabella ausiliaria in cui segni i vari record
che via via vengono aperti, e quando qualcuno apre un record per prima cosa
controlli in questa tabella se qualcuno lo ha già aperto.
ciao

 ha scritto nel messaggio
news:%vlFa.114228$g92.2...@news2.tin.it...


 wrote in message
news:%vlFa.114228$
g92.2...@news2.tin.it

Scusa anch'io ho una esigenza simile.Il tuo rimedio mi sembra molto
interessante, ma
, nel mio caso dove devo usare access,"la domanda sorge spontanea" :-) :
che succede se per qualche motivo l'utente esce scorrettamente
dall'applicazione o succede
qualcosa, p. es. in rete, che ferma la gestione dei record editati a
metà [Non salvati]? (Per
esempio chiude l'applicazione x sbaglio mentre sta modificando i dati
che non ha ancora salvato?).Rimangono i record con il campo con l'id
utente
pieno e di conseguenza il recor dbloccato?
La mia non vuole essere assolutamente una critica, eh!E' che sono
disperatamente interessato alle risposte!!!
Ciao
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 pieno e di conseguenza il recor dbloccato?
se si pianta il programma prima di chiudere il record, questo rimane
bloccato!
Comunque credo che l'applicazione è fatta bene non ci siano problemi,
infatti nel mio caso sembra funzionare tutto come un orologio.
Nel caso in cui il record rimane bloccato, l'utente riceve il messaggio con
l'indicazione di chi sta bloccando il record, e quindi deve rivolgersi a
quella persona oppure a chi entra con privilegi di amministratore per
sbloccarlo.
A mè è capitato solo una volta che succedesse di bloccare un recor anche se
non aperto, ma solo perchè in debug con il mio socio abbiamo la brutta
abitudine di bloccare il VB con lo STOP diretto senza far terminare
l'applicazione
ciao

l'applicazione
Pensa che io tolgo sempre il pulsantino di stop dalla toolbar ;-)
-- 
ciao, hal

> Pensa che io tolgo sempre il pulsantino di stop dalla toolbar ;-)
saggio...seguirò il consiglio