Doublons sur recordset

cs_beabea Messages postés 62 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 17 octobre 2008 - 18 mai 2005 à 16:12
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 18 mai 2005 à 19:05
Bonjour,

Je suis entrain de faire une application de courrier où un numéro automatiquement incrémenté est donné.
je vais chercher ce numéro dans une table que je mets à jour au fur et à mesure avec le numéro+1 et les données dans une autre table "courrier" avec ce numéro qui est l'identifiant du courrier.

L problème c'est quand plusieurs personnes clic sur ok pour obtenir son numéro, j'ai un message qui me dit qu'il y a risques de doublons qu'en l'update ce fait dans la table "courrier" puisqu'il y a déjà un numéro identique.
J'ai donc mis un error goto et je relance la procédure mais là il me dit que mes recordsets sont ouverts; quand je les ferme il me dit que ce n'est pas la bonne méthode.

Alors j'ai créé une autre procédure avec le même code que j'appelle en cas d'erreur et dans cette procédure en cas d'erreur je rappelle la première mais à un moment donné j'ai un message problème de pile insuffisant.

Je ne sais pas trop comment gérer ce problème

si quelqu'un à une solution
merci
béatrice

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 mai 2005 à 19:05
Salut
Première solution : Si les n° dont tu parles n'ont pas d'intérêt particulier pour l'utilisateur, essaye de dire à ta DB de gérer elle même ce chiffre :
- en déclarant ton champ en AutoIncrémental (et de type entier long)
- dans ta requète d'insert, ne mentionne pas ce champ (tous sauf celui-là) : Quand la DB reçoit ta demande d'insert et qu'elle voit que tu as un n° auto, elle le cherche elle même.
Petit inconvénient : elle ne bouche pas les trous (et c'est normal), c'est à dire que si tu Delete un enregistrement, le n° qui va avec ne sera jamais réutilisé.

Deuxième solution : Demande ce fameux n° qu'au moment où tu fais l'insert

Regarde aussi du côté des instructions suivantes qui tournent autour des Transactions : elles sont bien pratiques pour gérer le multi usage et les enregistrements ouverts :
Begin Transaction, Commit Transaction, RollBack Transaction

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
Rejoignez-nous