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

Silverlight Discussion :

RIA Services & gestion incrément unique


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Par défaut RIA Services & gestion incrément unique
    Bonjour à tous,

    je développe une application Silverlight 3 exploitant RIA Services pour l'accès aux données dans une base SQL Server 2005.

    Dans cette application, je dispose d'un écran principal doté d'un bouton, lors du clic sur ce bouton je dois générer un incrément unique (un entier); ce dernier est en fait un champ d'une table en BDD qui est incrémenté puis renvoyé via une procédure stockée du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    UPDATE MaTable
    SET MonIncrement=MonIncrement+1
     
    SELECT MonIncrement
    FROM MaTable
    Mon problème est que lorsque deux utilisateurs cliquent sur le bouton "relativement" en même temps... ils ont le même n° d'incrément !

    Qu'à cela ne tienne, j'ai :
    - encapsulé les deux opérations au sein d'une transaction (aucun effet)
    - apposé des verrous exclusifs (with (tablockx)) sur les 2 opérations (update et select) : j'ai toujours le même incrément pour les différentes exécutions, mais incrémenté de 2 et non plus de 1
    - spécifié un niveau d'isolation serializable à la transaction... rien n'y fait !

    J'y perds un peu mon latin et doit avouer que là je commence à être à court de solution... à moins de passer par un auto-incrément en base directement mais ce n'est pas le process demandé. Des idées ?

  2. #2
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    L'auto-incrément doit toujours être géré au niveau de la table, via une clause auto-increment par exemple.

    Au pire si tu ne peux pas modifier le schéma de la base utilise des GUIDs si c'est pour faire de l'identification; ou alors utilise un service dédié qui lui lockera l'incrément.

  3. #3
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    +1 avec l'idée d'utiliser des GUIDs

  4. #4
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    +1 aussi !
    C'est la seule manière d'avoir un lock unique puisqu'il est fait au niveau de la base de données...

    Quoique il est peut être possible de faire la même chose côté serveur avec un lock global à tout les potentiels Threads... Par contre je te le déconseille fortement...

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/11/2009, 08h20
  2. Silverlight 3, RIA Services - En Prévision..
    Par 3KyNoX dans le forum Silverlight
    Réponses: 4
    Dernier message: 17/07/2009, 13h49
  3. XMLParserexection dans DomaiDataSource (.NET Ria Service)
    Par bleuerouge dans le forum Silverlight
    Réponses: 1
    Dernier message: 22/06/2009, 03h43
  4. web service et gestion d'evenement
    Par leod38 dans le forum Services Web
    Réponses: 0
    Dernier message: 28/10/2008, 10h47
  5. Réponses: 3
    Dernier message: 30/09/2008, 11h36

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