m2rtech
Messages postés239Date d'inscriptionmercredi 9 octobre 2002StatutMembreDernière intervention20 février 2012
-
26 juin 2007 à 10:49
m2rtech
Messages postés239Date d'inscriptionmercredi 9 octobre 2002StatutMembreDernière intervention20 février 2012
-
26 juin 2007 à 11:26
Bonjour,
J'accède à une table Mysql stocké sur un site web via une appli VB
Dans mon appli je désire attribuer un nombre de manière unique, sachant que l'appli est multi-utilisateur.
Le nombre de référence stocké dans le champ mysql est de type médiumint.
Ce nombre est également formaté afin qu'il réponde aux besoins de l'appli (ex: 72xxxx)
Mon appli fonctionne ainsi :
- Lecture du nombre X dans la table mysql
- on fait X+1, on l'inscrit dans la table local
- on inscrit dans la table distance X+1
Durant les tests, 2 utilisateurs ont reçu le meme nombre
Comment faire autrement pour que cela n'arrive pas.
m2rtech
Messages postés239Date d'inscriptionmercredi 9 octobre 2002StatutMembreDernière intervention20 février 2012 26 juin 2007 à 11:26
Re-salut,
la transaction dans ce cas ne sert à rien :
suposons que un utilisateur A prend le dernier numéro en meme temps qu'un B,
il qu'il ecrire quand bien meme à une seconde d'intervale, rien n'empeche l'ecriture vue la nature du champ.
par contre ta piste est bonne, si le champ n'est pas unique en faisant des insert into
et de paramétrer le champ en unique sans doublon.
effectivement lors de l'ecriture, une erreur se produirait dans ce cas.
et les transaction prendrais un interet evident.
j'avoue que ma piste ne me plait pas: car je devrais generer à chaque fois un nouveau numero sous la forme X+1
dans le seul but d'avoir le suivant.