IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Gestion des accès concurrentiels


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 14
    Points
    14
    Par défaut Gestion des accès concurrentiels
    Bonjour

    J'ai une application Forms développée avec Visual Studio 2008.
    Je dois l'installer sur deux machines reliées entre-elles moyennant un réseau local.
    Donc deux PC, une seule base de données (Access 2003 mdb).
    Le logiciel sera placé dans un seul ordinateur, dans un répertoire partagé pour que l'autre ordinateur puisse y accéder.
    Si les deux ordinateurs utiliseront le même logiciel, il va falloir lancer deux instances du même logiciel.
    Deux instances, 1 seule base de données.
    Quel risque pourrait-il y avoir lorsque les deux utilisateurs effectuent des changements au même moment au niveau de la base de données? (Crash, exception, erreur, etc..).

    Au cas-où vous trouveriez cette méthode d'installation peu fiable, que me conseillez-vous?

    Merci d'avance à tous.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    access permet la multiutilisateur meme si c'est loin d'etre le meilleur sgbd

    après il y a plusieurs options
    prenons un exemple d'utilisation

    A affiche un tableau, B affiche le meme tableau, A modifie une valeur de 0 à 5 par exemple, B voit toujours 0 et peut mettre 10

    si tu codes toi meme tes requetes, il n'y aura pas d'erreur d'execution
    dans le 1er cas tu vas faire update set = 5 where pk et dans le 2eme update set = 10 where pk

    si tu passes par un dataset, il code lui meme les requetes de mise à jour, et il vérifie au passage que la valeur est toujours la meme
    selon le paramétrage du dataset, soit il s'en fout, soit il lève une erreur d'execution
    dans ce cas ca te permet d'afficher un message avec l'ancienne valeur connue, la valeur actuelle dans la base et la valeur qu'il voulait mettre, et il choisit laquelle il fait passer

    après il y a aussi moyens d'éviter ce genre de situations en rafraichissant les données, soit de manière automatiques toutes les x secondes (on a fait une appli qui rafraichit toutes les 500ms)
    du coup, en cas de modif de A, B la voit rapidement (il peut toujours y avoir le cas numéro 1, mais c'est pas forcément grave, c'est à toi de voir selon le type d'application)

    sur certains sgbd (comme sql server par exemple), il existe les notifications de requetes
    tu fais une requete, tu recois le résultat, et un évènement se lève sur le datareader lorsque des données ont été modifiées et si celles ci modifie le résultat de la requete initiales (donc un peu plus performant, meme si on doit relire tout quand meme)

    on peut imaginer une solution intermédiaire moins couteuse en performance mais couteuse en temps de développement, c'est de mettre dans un coin de la base tout ce qui évolue, comme ca chaque client connecté ne lit que ca pour voir s'il y a eut des mises à jour (par exemple stocker la clé de ligne et l'heure)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Gestion des accès concurrentiels
    Par gfranck dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/02/2014, 11h14
  2. Gestion personnelle des accès concurrentiels
    Par manumi dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 18/09/2010, 10h56
  3. Gestion des accès concurrents à une table
    Par kodo dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 20/06/2006, 14h05
  4. [Sécurité]Gestion des accès dans plusieurs bases
    Par vincentj dans le forum Débuter
    Réponses: 1
    Dernier message: 05/01/2005, 14h19
  5. [Struts] Droits d'un user et gestion des accès aux pages
    Par PeteMitchell dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/04/2004, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo