Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1947 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [VC++ / BDD] Gérer des accès concurrents à une bdd

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++ / BDD] Gérer des accès concurrents à une bdd

n°480782
skeye
Posté le 08-08-2003 à 11:14:26  profilanswer
 

Bonjour!
 
Je suis en train de devenir chèvre, donc je viens demander conseil.
Je développe actuellement sous visual 2 applis différentes accédant toutes les 2 à la même base de données, via une classe dédiée que j'utilise pour les 2.
Dans cette classe, je me connecte à une bdd MS-Access, via ODBC et des objets CDatabase et CRecordset.
Etant donné qu'à l'exécution j'ai clairement des pbs d'accès à ma bdd ("Impossible d'utiliser 'l'; fichier en cours d'utilisation" ), j'aimerais savoir comment vous résolvez ce type de problèmes, et quels moyens mettre en place pour obtenir un fonctionnement correct de mes accès à la bdd.
 
Merci de vos conseils.

mood
Publicité
Posté le 08-08-2003 à 11:14:26  profilanswer
 

n°480817
simogeo
j'ai jamais tué de chats, ...
Posté le 08-08-2003 à 11:47:14  profilanswer
 

[:vinz416@school]  
et eupp de soutien [:kadreg]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°480846
skeye
Posté le 08-08-2003 à 12:02:17  profilanswer
 

Je squatte le topic des mutex...mais mes premiers test (avec une seule appli multithreadée) sont pas concluants... :sweat:

n°480881
Taz
bisounours-codeur
Posté le 08-08-2003 à 12:52:03  profilanswer
 

ben si multi thread mutex. sinon si multi proc, memoire partagée si ça existe sous windows. sinon, comme apparemment y a pas de verrou possible au sein meme de la base de données, je vois pas comment faire quelque chose de solide en externe. tu peux tenter avec un fichier, mais ça sera trop trop lent et ça peut poser des problèmes. moi ce que je ferais, et encore une fois je sais pas si c'est possible sous windows, c'est un processus arbitre qui reçoit des demandes et autorise par signaux. c'est pas tres tres rapide, mais ça doit bien marcher

n°480894
skeye
Posté le 08-08-2003 à 12:58:30  profilanswer
 

:sweat:  
Ca devient complexe...
Bon, j'essaie de le faire marcher correctement sur une machine avec des mutex, déjà...

n°480993
LetoII
Le dormeur doit se réveiller
Posté le 08-08-2003 à 13:58:20  profilanswer
 

Taz a écrit :

ben si multi thread mutex. sinon si multi proc, memoire partagée si ça existe sous windows.


 
La mémoire partagée peut s'émuler via des fichier mappés sous windows.
 

Taz a écrit :

moi ce que je ferais, et encore une fois je sais pas si c'est possible sous windows, c'est un processus arbitre qui reçoit des demandes et autorise par signaux. c'est pas tres tres rapide, mais ça doit bien marcher


 
Ct ma première idée, c un poil technique. Ha mon avis pour ce qu'il veut faire les mutex devraient suffir.

n°480999
seblamb
Posté le 08-08-2003 à 14:00:51  profilanswer
 

Les acces concurents à une base de donnée doivent être gérés par la base de donnée sinon ça s'appelle un fichier et pas une base de donnée.
 
Sinon pour Access, on peut très bien avoir plusieurs connexions simultanées ( le programme sur lequel je travail le fait ), le seul cas que je connaisse où ça pose problème c'est quand la base est ouverte ne mode administrateur.
 
 
 

n°481033
skeye
Posté le 08-08-2003 à 14:30:47  profilanswer
 

seblamb a écrit :

Les acces concurents à une base de donnée doivent être gérés par la base de donnée sinon ça s'appelle un fichier et pas une base de donnée.
 


 
[:sisicaivrai]
Alors c'est quoi ce message de merde du driver odbc? (cf premier post)
 

Citation :


Sinon pour Access, on peut très bien avoir plusieurs connexions simultanées ( le programme sur lequel je travail le fait ), le seul cas que je connaisse où ça pose problème c'est quand la base est ouverte ne mode administrateur.


 
Ca veut dire que les mutex sont vraiment inutiles?

n°481037
skeye
Posté le 08-08-2003 à 14:35:32  profilanswer
 

Pendant que j'y pense, pour compacter la base il va quand même falloir que le reste n'accède pas à la bdd... :??:

n°481117
skeye
Posté le 08-08-2003 à 15:09:53  profilanswer
 

Bon, à-priori ya plus que le compactage de la bdd par un de mes threads qui pose pb...
Le compactage doit se déclencher automatiquement en fonction du rapport (nb de lignes dans la base) / (poids de la base).
Là normalement il faut que je bloque tout accès à la base de données non?
Vous feriez comment?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [VC++ / BDD] Gérer des accès concurrents à une bdd

 

Sujets relatifs
Acces restreint à une page en JavascriptDroit d'accés Applet
Script php donnant accès à un download , à combiner avec un htaccess[PHP MySQL] BDD gérée en live......(jsuis novice)
[PHPmyadmin] Il me marque toujours accès refusé !!!ASP : Gerer le nombre d'occurence par page
[HTML - PRO] Masquer l'accès à une ancre de balisage[PHP] Insertion news ds BDD
Enlever les messages "etes vous sur ..." d'acces grace à VBA[PHP] Comment gérer une chaîne avec des guillemets ??
Plus de sujets relatifs à : [VC++ / BDD] Gérer des accès concurrents à une bdd


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR