Microsoft SQL Server 2005 - VB6

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

Messages postés
262
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
27 avril 2007
1
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
Messages postés
262
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
27 avril 2007
1
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
Messages postés
37
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
20 mai 2016
1
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....
Messages postés
37
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
20 mai 2016
1
Je la contrôle....
Messages postés
37
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
20 mai 2016
1
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