Bloquer l'accès à une base de donnée

Résolu
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 - 29 sept. 2005 à 15:44
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 - 3 oct. 2005 à 11:17
Bonjour,



J'aimerai trouver un moyen d'empêcher l'accès à une base de
donnée, au cas où une connexion à cette base est déjà
ouverte..

Si quelqu'un à des idées..

Merci.

7 réponses

Paladin2107 Messages postés 154 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 5 septembre 2008 1
29 sept. 2005 à 16:48
Ds une table du place un booleen. A chaque ouverture de ta BD du li cette valeur et en fonction du résultat du autorise ou non l'acces.

Couscous
3
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
30 sept. 2005 à 20:40
Pour ouvrir la base en mode exclusif en ADO :


Dim cnn As New ADODB.connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\Comptoir.mdb;Mode=" & adModeShareExclusive

mais bon, perso, je préfère la solution du contrôle, voire celle-ci qui locke la mise à jour des tables interrogées tant que le recordset n'est pas close :

Pour un recordset :
rst.Open "SELECT .... ", cnn, adOpenKeyset, adLockPessimistic

C'est à toi de voir.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
3
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 1
29 sept. 2005 à 16:52
C'est bien vu, je vais faire un truc dans le genre... merci, mais je
pensais qu'il existait une fonction..ou mieux une propriété de l'objet
oledbconnection..

car petite précision à grande conséquence : la base est Access, je suis en Vb.net(2002)


.Maytheforcebewithyou.Maxime.


Ps : si j'ai pas mieux avant demain soir, j'accepte ta réponse, Paladin !
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
29 sept. 2005 à 23:53
Salut,
Ouvre ta base en mode exclusif. Ca interdira à tout autre de l'ouvrir. Ce qui vet dire qu'il te faudra gérer ce cas.
L'importance n'est pas la version de ta base mais le mode d'attaque, DAO, ADO, OleDB (qui n'est que de l'ADO), ...
Mais, pour une base utilisée en réseau, donc +sieurs utilisateurs potentiels, locker la base n'est pas une solution.
C'est à toi de vérifier si, au moment de l'enregistrement ou de la modif de l'enreg, il n'y a pas eu une modif ou un autre enreg avant le tien et, le cas échéant, gérer ce cas.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 1
30 sept. 2005 à 19:57
J'utilise ADO..

C'est vrai que vérifié si il y a eu des changement est la méthode des
bouquins, mais dans mon cas, ce mode exlclusif m'intéresse beaucoup !

J'utilse de l'Oledb (microsoft jet 4.0 oledb comme provider..), comment faire pour déclarer l'exclusivité de ma connection ?


.Maytheforcebewithyou.Maxime.
0
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 1
3 oct. 2005 à 09:00
Effectivement, le mode exclusif est ce que je cherchais, par contre ta syntaxe de déclaration n'a pas pas marchée, CanisLupus



pour une connection oledb :

"Mode = Share Deny Read|Share deny write;"

.Maytheforcebewithyou.Maxime.



Merci encore a+ !
0
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 1
3 oct. 2005 à 11:17
En fait c'est pas ca non plus.. J'ai pas moyen de déclarer ma connection exclusive en code !

L'objet 'tout fait' marche..

je recupère son connectionstring,

je déclare un objet connection dans mon module en lui affectant ce connectionstring

ca marche pas : pas possible de se connecter (pas de message d'erreur dispo mais auth_failed..)




pk ?

j'ai besoin de créer moi-mem l'objet connection en code dans mon module car j'en aurais besoin partout dans mon soft ensuite..

comment faire ?
0
Rejoignez-nous