Porbleme de Update

Résolu
Messages postés
59
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
25 novembre 2006
-
Messages postés
59
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
25 novembre 2006
-
salut tout le monde
Voila j'ai une base de donnee sous sql server 2000 installe dans un serveur et il y'a 4 ordinateur qui se connecte a cette base.
Ce que je veut faire s'est comment arriver a gere la base pour que deux personne qui consultent la meme table ne fassent pas exemple une modification en meme temps.
Comment faire pour avertir les autres personne qu'il y'a quelqu'un qui est en train de modifier dans cette table ou bien bloque la table.
J'ai cherche dans le forum mais j'ai rien trouve
Merci a vous

6 réponses

Messages postés
259
Date d'inscription
mercredi 3 mai 2006
Statut
Modérateur
Dernière intervention
11 janvier 2010
7
Hello,

SQL Server gère ce genre de chose seul, il est impossible que le même enregistrement soit modifié par les 4 en même temps...

Si celà arrive (qu'il 4 utilisateur effectuant 4 update sur le même enregistrement) les UPDATE qui passeront seront executés les uns à la suite des autres... En fait le premier verouille et fait sa modification, donc les suivant attendent, le premier libère le verrou quand il a terminé et c'est au tour du second.

Les cas où celà pourrait se produire c'est par exemple la consultation d'une fiche dans une application, ouverte par 2 ou 3 personnes, et toutes ces personnes la modifie et puis l'envoie.

Pour gérer ce genre de chose, on peut vérifier au moment de la modification que les données n'ont pas déjà changés (à faire au niveau de l'application). On peut verouiller l'enregistrement dès qu'il est lu, etc.

Autre précision, en général on gère çà plutôt à l'enregistrement qu'à la table sinon c'est vraiment la galère pour les accès concurrents.

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
Messages postés
268
Date d'inscription
samedi 22 février 2003
Statut
Membre
Dernière intervention
24 avril 2013
3
Plutôt la seconde mhéthode :
lors du chargements tu as toutes les valeurs d'origines
avant de sauveguarder tu vérifie si les données dans l'enregistrement on
changer par rapport au valleur originale que tu as charger.

si les données on changé a toi de voir :

soit tu écrit par dessus soit tu annule ton enregistrement 
soit (le mieux tu demande a l'utilisateur ce qu'il faut faire en lui affichant les donnée orriginal, ses modification et les données actuel,

et si tu présente ca en tableau

ex
==========================================

NomChamp   Origine   Modif   Courant   Autre
==========================================
tata       120       125     121
...
==========================================

tu laisse l'utilisateur cliquer sur la case de la donnée a enregistrer
et si il clique sur la case autre, il peux directement indiquer une valeur.
(Enfin bon c'est pas forcement toujours applicable et ca demande un peu de bouleau mais
quand on peu le faire c'est bien pratique)
Messages postés
59
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
25 novembre 2006

Merci pour ta reponse skweeky


Ma base est effectivement gerer par une application faite sous vb 2003 ce que je veut savoir si au cas ou deux personne charge le meme enregistrement et font des modification la dessus qu'elle est la meilleur facon de gerer une telle situation.


Faire une procedure stockee,tiggers ou faire le code d'update dans l'application et verifier si l'enregistrement n'as pas subit de modification.
Merci pour tout


 
Messages postés
59
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
25 novembre 2006

Merci a vous pour votre aide
Messages postés
268
Date d'inscription
samedi 22 février 2003
Statut
Membre
Dernière intervention
24 avril 2013
3
c'est pas en rapport direct mais ca peut aussi t'intérésser :



http://www.sqlfr.com/infomsg_PBS-CONCEPTION-HISTORISATION-BASE-DONNEE_811791.aspx
Messages postés
59
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
25 novembre 2006

Merci a vous Malkuth s'est tres interessant et s'est tres gentil de votre part encore une fois merci
Bonne journee