cs_opala
Messages postés34Date d'inscriptionjeudi 9 octobre 2003StatutMembreDernière intervention19 novembre 2007
-
18 oct. 2006 à 18:27
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 2011
-
20 oct. 2006 à 08:19
Bonjour,
Je doit reprendre un intranet existant et faire des évolutions.
La techno est imposée: ASP et Access.
Dans ma table Access, j'ai une table commande. Avec un Numéro de commande, clé primaire, number automatique.
Lorsqu'une personne passe une commande, on fais un INSERT dans la table commande sans le numéro de commande (vu qu'il est positionné automatiquement).
Je doit aujourd'hui, afficher à l'écran le Numéro de commande qui viens d'être attribué à la commande passée.
Je me dit que je peux modifier la base et rendre ce numéro de commande unique (le laisser en clé primaire), mais enlever l'attribut automatique. Dans le process ASP, je récupère le dernier numéro, je l'incrémente de 1, je fais un INSERT avec le numéro de commande et je l'affiche à l'écran....
Mais je me demande si c'est "pro" de faire ca, au cas ou 2 utilisateurs en meme temps demanderai un n+1 du numéro et ferais un INSERT juste apres avec le meme numéro. Ok je peux afficher un message demandant a recommancer pour le 2eme, mais existe t'il une autre methode plus "pro"?
(J'avais pensé a mettre une sequence, et le process access irait demander le dernier numéro de sequence... le numéro de commande serais alors unique, mais j'ai pas l'impression qu'on puisse faire cela en ACCESS)
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 19 oct. 2006 à 08:26
Lorsque tu fais un INSERT en ADO
Tu fais un rs.update avant le rs.close
Et bien, lorsque tu fais ton rs.update
Ta nouvelle ligne est créée.
Tu peux donc récupérer immédiatement le n° nouvellement créer en faisant
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 20 oct. 2006 à 08:19
Pourtant j'ai une application où je fais
rs.open "Table",conn,1,2
rs.addNew
rs("CH_Saisie") = EMP_ID
rs("CH_DateSaisie") = Now
rs.Update
IdCh = rs("CH_ID")
rs.Close
Et j'ai bien le n° nouvellement créé dans IdCH, peut être est-ce ton response.write
qui ne te renvoi pas la bonne valeur, essayes avec
Debug.print RS("Numero_Commande") 'et tu regardes avec Ctrl+G
ou alors fais un MsgBox RS("Numero_Commande")
TBBUIM