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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Savoir si une base de données est mono ou multi utilisateur ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Savoir si une base de données est mono ou multi utilisateur ?

n°1841900
neo18045
Posté le 23-01-2009 à 09:24:04  profilanswer
 

Bonjour,
 
Je ne savais pas trop si je devais poster ce message dans la partie Delphi ou la parti SQL mais bon je pense qua ça concerne plus SQL.
 
Je fais une application Delphi d'archivage de base de données intégrée dans un gros programme.
Au lancement de cette application, ma base principale qui est en multi utilisateur devient mono utilisateur.
De ce fait, l'application général s'exécutant à la réussite de connexion, une fois en mono utilisateur plus personne ne peut la lancer.
J'aimerai gérer cette erreur de connexion pour définir avant la connexion si ma base principale est en mono ou multi utilisateur.
 
Donc j'aimerai savoir s'il y a moyen de savoir si une base est en mono ou multi utilisateur sans la requêter elle-même ? Es-ce possible d'après une des autres bases tel que master ?
 
Merci d'avance pour vos réponse.
 
Edit 1 : j'ai oublié de précisé mais les base de données sont sous SQL Server 2000/2005
 
Edit 2 : j'avais trouvé cette requête "SELECT DATABASEPROPERTYEX('ma base','UserAccess')", mais hélas la requête se fait sur la base renseigné, et dans mon cas elle ne se fera jamais ou sera inutile car une fois en mono utilisateur, la connexion à cette base ne se fait pas.


Message édité par neo18045 le 23-01-2009 à 09:27:34
mood
Publicité
Posté le 23-01-2009 à 09:24:04  profilanswer
 

n°1842222
rufo
Pas me confondre avec Lycos!
Posté le 23-01-2009 à 17:43:11  profilanswer
 

ca serait pas plutôt un pb de verrou? Quand tu fais ton archivage, sa verrouille pour éviter les accès concurrents mais une fois le travail terminé, ça ne déverrouille pas?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1843557
neo18045
Posté le 27-01-2009 à 12:00:56  profilanswer
 

Non je ne pense pas. Comme je l'ai dit l'application est accessible à tout le monde (enfin tous les utilisateur proposé) dès le départ.
Dans cette application, se trouve celle pour mon archivage. J'ai demandé qu'au lancement de celle-ci, une requête soit passé pour passer la base en utilisateur unique, et une autre pour la passer en utilisateur multiple à la fermeture, et j'ai vérifié, le changement se fait correctement.
Du coup, si elle est en utilisateur unique quand j'utilise l'archivage, plus personne ne peut se connecter dessus vu que je suis déjà connecter dessus.
Mais mon problème n'est pas là, car du coup c'est normal que personne ne puisse se connecter en même temps car c'est voulu. Mon problème est que je ne sais pas s'il est possible de savoir dans quel état est l'accès à cette base (mono ou multi utilisateur) sans avoir à utiliser celle ci justement? Genre un champs d'une table qui est dans une autre base telle que la base master par exemple. J'ai vu que dans celle-ci il y avait "sysdatabases" où on peut voir toutes les bases de créer dans sql server, mais aucun renseignement sur l'état de l'accès à une base précise.
Donc si vous avez la solutions, je suis tout ouïe  :lol:  
Merci d'avance.


Message édité par neo18045 le 27-01-2009 à 12:04:18
n°1843564
Dion
Acceuil
Posté le 27-01-2009 à 12:26:29  profilanswer
 

Mais quand tu fais ton connect ca te renvoit pas un code d'erreur justement ?


---------------
When it comes to business/legal topics, just assume almost everyone commenting has no idea what they’re taking about and have no background in these subjects because that’s how it really is. Harkonnen 8-> Elmoricq 8====>
n°1843570
neo18045
Posté le 27-01-2009 à 12:49:57  profilanswer
 

En fait, ceux qui ont créer l'application ont mis des conditions qui font que si la connexion n'aboutis pas, une demande est faite afin de réessayer de se connecter à la base. Et vu que lors de l'ouverture de l'archivage la base est en utilisateur unique, le message peut être demandé infiniment tant que l'utilisateur ne dit pas qu'il ne veut pas réessayer de se connecter. Une fois que l'utilisateur dit qu'il ne veut pas réessayer de se connecter, l'application se ferme et effectivement après j'ai des messages d'erreur. Un premier qui me dit que mon application a rencontré un problème et doit fermer, et un autre qui est message d'erreur de delphi "Exception EOleException dans le module xxx.exe dans 0013FE16. Impossible d'ouvrir la base de données demandée dans la connexion 'xxx'. Echec de la connexion.". Mais je pense que si j'ai ces messages, c'est que le fait que la connexion ne puisse aboutir n'a pas dû être traité.
 
Ce que je voudrais, c'est passer avant ce message de reconnexion pour dire dès le départ si oui on non il peut tenter de se connecter. C'est donc pour ça que je veut tenter une connexion sur sql server pour vérifier comment est l'accès à cette base précisemment, avant de me connecter dessus et donc de me mettre à l'utiliser.

n°1853348
neo18045
Posté le 20-02-2009 à 10:58:18  profilanswer
 

Toujours aucune réponse ???


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Savoir si une base de données est mono ou multi utilisateur ?

 

Sujets relatifs
Quelle solution pour une première base SQL ?Détecter les doublons sur une base de données MYSQL
Pb de connexion sur base 2005 depuis client SQL server 2000Retrouver dans la ram certaines données.
Savoir d'où viennent les visiteurs sur mon projet SourceForgegrain de sel par utilisateur : comment faire ?
Question de baseSavoir qui est connecter dans une BDD
Probleme Ecriture base de registre VB 
Plus de sujets relatifs à : Savoir si une base de données est mono ou multi utilisateur ?


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