Access bdd .mdb par oledb en lecture seule sur CD

Résolu
Blacknight91 Messages postés 77 Date d'inscription vendredi 26 mars 2004 Statut Membre Dernière intervention 24 avril 2007 - 18 mars 2006 à 09:31
cybernul Messages postés 41 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 7 décembre 2009 - 16 nov. 2007 à 15:53
Bonjour,

voilà j'ai appli qui utilise une bdd par le driver oledb en lecture seule (pas besoin de faire des modif), jusque là tout va bien. j'y est bien accès en testant sur disque dur.

mais je voudrais utiliser mon appli sur CD et c'est là que ca plante:
j'ai un message d'erreur comme quoi l'appli ne peut pas verrouiller le fichier.
je suppose que ce fichier est ma bdd.
pourtant je ne veux l'utiliser qu'en lecture seule, donc cela devrait fonctionner sur un CD.

Donc est il possible de pouvoir utiliser ma bdd sur CD en lecture seule et en évitant ce "verrouillage" ?

Blacknight91
http://blacknight91.free.fr/Flash_nouvelle/

8 réponses

gyzmo222 Messages postés 66 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 2 juin 2006 1
18 mars 2006 à 10:49
Lorsque tu ouvre une base de données, un fichier de vérrouillage est toujours créé a coté du fichier de base de données. C'est ce fichier qui empèche souvent plusieurs utilisateurs d'accéder à la base de données. C'est une protection made in microsoft selon moi. Mais j'avoue que ça m'a souvent posé aussi problème.

sur ce site: http://office.microsoft.com/fr-be/assistance/HP051882971036.aspx
ils expliquent comment faire passer la base de données en mode partagé ou exclusif. Je pense qu'elle est en exclusif par défaut d'ou le vérouillage. Essaye de voir si un fichier est aussi créé en partagé... Sinon parcours les options, ya peut etre un mode lecture seule à spécifier mais pour ton cd, si tu change ses options, tu peux le refaire . Essaie au préalable sur ton disque dur en visionnant le répertoie tu devrais apercevoir le fichier lors de connection.open
3
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
18 mars 2006 à 10:05
Salut,

Dans ce cas, fait une copie locale de ta base (par exemple dans le dossier Temp), et ensuite tu pourras l'utiliser
(mais j'avou que je sais pas trop pourquoi il ne peux pas "verrouiller le fichier" )

<hr size="2" width="100%">Nurgle (Antoine)
0
Blacknight91 Messages postés 77 Date d'inscription vendredi 26 mars 2004 Statut Membre Dernière intervention 24 avril 2007 1
18 mars 2006 à 10:18
j'y ai pensé a copier en local, mais ce sera ma dernière solution s'y rien d'autre n'est trouvé.

l'appli doit surement faire une modif / ecriture sur le fichier pour obtenir son "verrouillage" or sur un CD c'est impossible. Mais comme toi je ne vois pas pourquoi il doit le verrouiller pour l'utiliser

Blacknight91
http://blacknight91.free.fr/Flash_nouvelle/
0
Blacknight91 Messages postés 77 Date d'inscription vendredi 26 mars 2004 Statut Membre Dernière intervention 24 avril 2007 1
18 mars 2006 à 11:19
Ok merci pour ton aide gyzmo222
Ca fonctionne bien maintenant

lors de la création du pilote oledb, il faut configurer l'acces a la bdd en Read et Share Exclusive

Partie code ca donne ça: Mode=Read|Share Deny Read|Share Deny Write

Blacknight91
http://blacknight91.free.fr/Flash_nouvelle/
0

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

Posez votre question
cybernul Messages postés 41 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 7 décembre 2009
7 nov. 2007 à 12:00
Salut,

Je sais que cela date, mais pourrais tu détailler la partie code.

Merci.

Cybernul
0
Blacknight91 Messages postés 77 Date d'inscription vendredi 26 mars 2004 Statut Membre Dernière intervention 24 avril 2007 1
7 nov. 2007 à 20:02
que veux tu savoir exactement ?
si c'est juste ce qui me concernait voilà la ligne de code permettant le parametrage de la connexion OLEDB:

oleDbConnection1.ConnectionString = @"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Database Password=;Data Source=D:\bdd.mdb;Jet OLEDB:Engine Type=5;Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Mode=Read|Share Deny Read|Share Deny Write;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1";
   

Blacknight91
http://blacknight91.free.fr/Flash_nouvelle/
0
cybernul Messages postés 41 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 7 décembre 2009
16 nov. 2007 à 15:49
Merci.

Exactement, c'est cette fonction que je cherchais.

(Mode=Read|Share Deny Read|Share Deny Write;)

Mais malheuresement ça ne fonctionne pas pour moi.

Mon problème est que je veux accéder à une base sur un serveur.
Sauf qu'il se peux que cette base soit ouvert par le serveur pour la mettre à jour. Et donc quand j'essai de me connecter, j'ai droit à ce message :
Le moteur de la base de donnes Microsoft Jet ne peut pas ouvrir le fichier 'X:\????????.MDB'. Il est déjà ouvert en mode exclusif par un autre utilisateur, ou vous devez avoir l'autorisation de visualiser ses donnes.

Sachant que j'ai les droits sur ce répertoire.

Pour compliquer la chose. Quand j'éxécute mon appli web avec
Visual Studio, je n'ai aucun pb mais quand je publie mon projet sur mon serveur web et que j'essaie, j'ai le message d'erreur ci-dessus.


Merci de votre aide.
0
cybernul Messages postés 41 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 7 décembre 2009
16 nov. 2007 à 15:53
Merci.

Exactement, c'est cette fonction que je cherchais.

(Mode=Read|Share Deny Read|Share Deny Write;)

Mais malheuresement ça ne fonctionne pas pour moi.

Mon problème est que je veux accéder à une base sur un serveur.
Sauf qu'il se peux que cette base soit ouvert par le serveur pour la mettre à jour. Et donc quand j'essai de me connecter, j'ai droit à ce message :
Le moteur de la base de donnes Microsoft Jet ne peut pas ouvrir le fichier 'X:\????????.MDB'. Il est déjà ouvert en mode exclusif par un autre utilisateur, ou vous devez avoir l'autorisation de visualiser ses donnes.

Sachant que j'ai les droits sur ce répertoire.

Pour compliquer la chose. Quand j'éxécute mon appli web avec
Visual Studio, je n'ai aucun pb mais quand je publie mon projet sur mon serveur web et que j'essaie, j'ai le message d'erreur ci-dessus.

Merci de votre aide.
0
Rejoignez-nous