Bloquer l'accès à une base de donnée [Résolu]

Messages postés
288
Date d'inscription
mercredi 4 mai 2005
Statut
Membre
Dernière intervention
26 janvier 2012
- - Dernière réponse : 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.
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
154
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
5 septembre 2008
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 193 internautes nous ont dit merci ce mois-ci

Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
10
3
Merci
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 !?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 193 internautes nous ont dit merci ce mois-ci

Messages postés
288
Date d'inscription
mercredi 4 mai 2005
Statut
Membre
Dernière intervention
26 janvier 2012
1
0
Merci
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 !
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
10
0
Merci
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 !?
Messages postés
288
Date d'inscription
mercredi 4 mai 2005
Statut
Membre
Dernière intervention
26 janvier 2012
1
0
Merci
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.
Messages postés
288
Date d'inscription
mercredi 4 mai 2005
Statut
Membre
Dernière intervention
26 janvier 2012
1
0
Merci
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+ !
Messages postés
288
Date d'inscription
mercredi 4 mai 2005
Statut
Membre
Dernière intervention
26 janvier 2012
1
0
Merci
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 ?