Microsoft SQL Server 2005 - VB6

Résolu
cs_gide_x Messages postés 37 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 20 mai 2016 - 19 avril 2006 à 19:43
cs_gide_x Messages postés 37 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 20 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 ???)

Merci de d'aider un PEBCAK en SQL ;)

5 réponses

asecher Messages postés 262 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 27 avril 2007 1
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....

Alain 31
3
asecher Messages postés 262 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 27 avril 2007 1
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...

Alain 31
0
cs_gide_x Messages postés 37 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 20 mai 2016 1
19 avril 2006 à 21:19
Salut !

Merci de ta réponse.....

...effectivement, pour le repérer c'est possible par les autres champs .... (SELECT FROM..........)

le soucis, c'est que le soft que je prépare est un logiciel de caisse et dans la table en question j'ai :

- RéfQuittance (celui là s'autoincrémente)
- montantTTC
- montantTVA1
- montantTVA2
- montantHT
- RéfClient
- RéfVendeur

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....

Enfin .... je ne déséspère pas, mais presque....
0
cs_gide_x Messages postés 37 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 20 mai 2016 1
22 avril 2006 à 18:11
Je la contrôle....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_gide_x Messages postés 37 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 20 mai 2016 1
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

merci mille fois !

JD
0
Rejoignez-nous