Newsgroup: it.comp.lang.visual-basic
Titolo: Controllare gli accessi al database

Ciao a tutti, vorrei sapere come si fa a contare gli accessi contemporanei
ad un db access condiviso in rete.
Mi spiego, il mio programma viene installato sui client di una rete e si
collega tramite odbc con connessione ADO al db presente sul server, ho la
necessità di controllare che un'operazione del programma venga fatta quando
nessun client è collegato al db tranne quello che effettua l'operazione.
Come posso fare?
Vi ringrazio
Ciao


Tenti di aprire il db in maniera esclusiva.
Se ci riesci hai vinto, altrimenti significa che qualcuno è connesso, e devi
gestire l'errore e riprovare.
E' una modalità brutta come la fame, perchè è noto che aprire e chiudere
connessioni ad un DB access lascia memory leak notevoli, ma se non è una
cosa che gira per giorni e giorni non dovresti avere problemi.
Però non vedo altre opzioni...
Ciao
Alberto

 Tenti di aprire il db in maniera esclusiva.
Certo... Ma se non é Access?
                    Ciao
                                                    Allanon
--
- SPAMKILLER
 L'indirizzo delle risposte é 
itlangv...@michele.sytes.net
 LASCIATE il NOSPAM fa parte dell'indirizzo :-)
  Per superare le impostazioni di protezione antispam scrivete
  nel testo del messaggio la scritta "SPAMKILLER"
Scusate il disturbo, ma non posso più di pubblicità

 Certo... Ma se non é Access?
Se è MSDE o Sql-Server puoi contare gli spid, e poi 'bloccare' il db a
single user.
Però, visto che Zed chiedeva espressamente di Access, non mi sembrava il
caso di approfondire le altre possibilità.
Se ti interessa ne parliamo.
Ciao
Alberto


Ciao come posso effettuare l'accesso in modo esclusivo?
Ti ringrazio
Ciao

Sorry... mi sono spiegato male...
Intendevo proprio chiedere se c'era un metodo universale valido anche per
gli altri database (e nella fattispece MSDE). Cosa sono gli SPID?
                    Ciao & grazie


Se si tratta della proprietą exclusive mi pare che non funzioni con la
connessione ODBC al db

 connessione ODBC al db
Puņ essere.
Perņ verifica se veramente ti serve ODBC, perchč oramai usano tutti OleDb,
salvo necessitą particolari.
E con OleDb so per certo che si puņ.
Ciao
Alberto

 salvo necessità particolari.
In effetti con l'accesso OleDB é anche decisamente più veloce...
                Ciao


 per gli altri database (e nella fattispece MSDE). Cosa sono gli SPID?
Beh, universale non saprei...
Per Sql-Server e MSDE: Io personalmente non ho mai avuto bisogno di questa
cosa (anche perchè è un po' contraria al concetto di DBMS Server che ho
io...), però tenterei:
1) verificare che non sia una cosa possibile già con Ado e SqlOleDb, con un
parametro della connection string.
2) Se così non si può, puoi o andare ad interrogare quali spid (task) sono
attivi, e se ne trovi di utente (in mezzo ad alcuni propri del server), puoi
o ucciderli o aspettare o inviare un messaggio, ecc...
3) La modalità probabilmente più morbida è quella di connettersi, e quindi
imporre al db di andare in single-user. Se ci va, ok, altrimenti bisogna
ritentare...
Però sono sicuro che, informandosi meglio, si possa trovare qualcosa di più
efficiente.
Ciao
Alberto

 In effetti con l'accesso OleDB é anche decisamente più veloce...
Ehhhhhhhhhhhh, da morire...