DOUBLONS SUR NUMEROS AUTO INCREMENTE MANUELLEMENT EN MODE MULTI UTILISATEUR
seb0122
Messages postés1Date d'inscriptionmercredi 23 juillet 2008StatutMembreDernière intervention 7 septembre 2010
-
7 sept. 2010 à 15:46
yohan49
Messages postés380Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention13 août 2011
-
10 sept. 2010 à 13:51
Bonjour,
J'utilise en base en mode multi utilisateur (les tables se trouvent dans une base sur le reseau et les formulaires se trouvent dans une base installée sur chaque poste de travail).
Je génére dans une table un numéros de type : AAAA_MM_JJ_NNN (AAAA, MM, JJ representant l'année, le mois, le jour et NNN un numéros incrémenté automatquement de 001 à 999 par jour)
Etant obligé de recommencer à chaque nouveau jour mon numéros NNN à 1 je ne n'utilise pas la fonction numérosauto mais génère moi-même un numéros en ajoutant 1 au dernier numéros utilisé. Tout ce ci fonctionne bien avec un seul utilisateur.
Mon problème intervient avec plusieurs utilisateurs. Si 2 utilisateurs génèrent le numéros en même temps access leur atribut le même numéros. Je me suis dit que c'était logique, tant que le 1er utilisateur n'avait pas enregistré il était normal de se retrouver avec le même numéros max()+1.
Si vous avez une solution à mon problème je vous serais très reconnaissant.
Seb
A voir également:
DOUBLONS SUR NUMEROS AUTO INCREMENTE MANUELLEMENT EN MODE MULTI UTILISATEUR
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 10 sept. 2010 à 12:03
Salut,
2 Propositions:
1°) Ne génères ton identifiant qu'au dernier moment.
Juste à l'instant ou tu es sur le point d' enregistrer.
2°)Affectes un identifiant pour chaque utilisateur (du style A,B,C...).
Ainsi ton numero aura le format suivant.
AAAA_MM_JJ_NNN_A --->ulisateur 1
AAAA_MM_JJ_NNN_B --->ulisateur 2
AAAA_MM_JJ_NNN_C --->ulisateur 3
Pour incrémenter tu te basera sur le code utilisateur.
(le dernier de A +1, par exemple)
yohan49
Messages postés380Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention13 août 20117 10 sept. 2010 à 13:51
salut
pourkoi n'utilise tu pas les transaction
etape 0 : mettre ton champ db a unique
etape 1 : connexion a la bd
etape 2 : creation d'une transaction
etape 3 : ajout de la ligne dans la bd
si l'id que tu dois ajouter existe , tu aura une exeption
donc tu annule la transaction
increment ton id
relance a partir de l'etape 1