cs_gide_x
Messages postés37Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention20 mai 2016
-
19 avril 2006 à 19:43
cs_gide_x
Messages postés37Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention20 mai 2016
-
11 mai 2007 à 07:45
Bonjour !
j'ai un p'tit soucis:
J'ai une base de donnée dans un serveur SQL dans laquelle j'ai le champs d'une table qui a un numéro (qui doit être unique) qui est généré automatiquement par le serveur (incrément auto.).
Ce qu'il faut savoir, c'est que plusieurs utilisateurs peuvent ajouter une ligne dans cette table en même temps ...
Y aurait-il une possibilité pour pouvoir récupérer ce numéro dans la ligne que l'on vient de créer ??? (peut-être directement en même temps que le INSERT ???)
asecher
Messages postés262Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention27 avril 20071 20 avril 2006 à 00:00
La structure de ton enregistrement est-elle imposée ou tu la contrôle ?
Si oui, tu peux préfixer par un @SID. Cherche du coté de toutes les variables de process genre @IDENTITY, etc....
asecher
Messages postés262Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention27 avril 20071 19 avril 2006 à 20:59
Si tu as un autre identifiant en source de ton insert, et dans la mesure où chaque process SQL est indépendant, tu doit pouvoir "catcher" (repérer) ton enregistrement par un moyen ou un autre...
c'est clair, à part RéfQuittance, tous les autres je les connais .... mais j'essaye d'éviter les futurs problème si un jours j'ai une quittance identique
J'ai entendu parler de fonctions nextval / currval .... Après avoir cherché un peu, le sujet touche particulièrement Oracle et postgresql.... j'ai essayer sous M$ SQL, mais rien .... pas de message d'erreur ni de résultat .... comme si rien ne s'était jamais passé... bizarre !
Je suis certain qu'il doit-être possible de pouvoir "réserver" un numéro à auto-incrémentation doit-être possible .... je ne pense pas (... enfin, je n'éspère pas) que les logiciels de caisses pro qui tourne sous M$ SQL (et j'en connais.....) ont un risque d'erreurs possible aussi grand, pour seule raison qu'il serait impossible d'avoir un retour de ce nombre auto au moment de la création de l'entrée....
cs_gide_x
Messages postés37Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention20 mai 20161 11 mai 2007 à 07:45
oops ... .désolé, j'avais oublié d'accepter la réponse .... effectivement, @IDENTITY ne réserve pas une entrée pour la reprendre plus tard, mais il est possible de récupérer la valeur de l'entrée qu'il a créé et théoriquement, il n'est pas possible d'avoir un conflit en cas de deux requêtes simultanée, car lors de la création du numéro, ça me met les autres utilisateur qui demande une nouvelle entrée en fil d'attente... (~200ms) ... donc c'est cool