superismali
Messages postés38Date d'inscriptionmercredi 1 décembre 2004StatutMembreDernière intervention 8 janvier 2007
-
8 janv. 2007 à 15:45
billelhiphop
Messages postés2Date d'inscriptionsamedi 27 novembre 2004StatutMembreDernière intervention 3 juin 2012
-
20 janv. 2007 à 11:02
Bonjour tout le monde,
J'ai un petit programme en csharp qui lit une valeur X d'une base mysql, la multiplie par son TVA et la réinsère dans la base.
Jusque là mon prog fonctionne sans problème.
Parfois, il arrive que deux utilisateur accèdent à un meme instant T et que je trouve ma variable X et la multiplie 2 fois par le TVA, ce qui me pose problème.
Qui peut m'aider??
cs_Warwick
Messages postés81Date d'inscriptionvendredi 1 février 2002StatutMembreDernière intervention 8 octobre 2007 8 janv. 2007 à 22:25
Je pense qu'une bonne solution ne serait pas du côté C#, mais plutôt MySQL avec les instructions LOCK et UNLOCK si tes droits en base de données le permette.
Warwick.
billelhiphop
Messages postés2Date d'inscriptionsamedi 27 novembre 2004StatutMembreDernière intervention 3 juin 2012 20 janv. 2007 à 11:02
je crois que ton probléme sera résolu si tu déclare une variable booléenne qui sera à true si aucun utilisateur ne manipule la ressource et à false sinon, et aprés tu fais un test sur la variable dans chaque utilisateur avant d'effectuer la modification du genre:
bool etat= true;
while (!etat) ; // s'il ya qqun qui modifie la base alors on attend sans rien faire
ou bien "do while(!etat);"
et une fois la base est libérée l'utilisateur en attente peut y accéder en fesant:
etat =false;
//et puis tu fais ton accés à la base mysql
et aprés tu fais etat=true;
pour indiquer que l'utilisateur en cours a terminé son traitement