Boudchiche
Messages postés59Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention25 novembre 2006
-
9 sept. 2006 à 21:24
Boudchiche
Messages postés59Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention25 novembre 2006
-
16 sept. 2006 à 17:36
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
cs_skweeky
Messages postés259Date d'inscriptionmercredi 3 mai 2006StatutMembreDernière intervention11 janvier 20108 10 sept. 2006 à 13:29
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.
cs_Malkuth
Messages postés268Date d'inscriptionsamedi 22 février 2003StatutMembreDernière intervention24 avril 20134 11 sept. 2006 à 16:38
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)
Boudchiche
Messages postés59Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention25 novembre 2006 10 sept. 2006 à 14:15
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