RECUPERER LE NUMERO AUTO D'UN CHAMP APRES AJOUT

mcjo - 6 déc. 2001 à 12:00
medicair Messages postés 37 Date d'inscription vendredi 28 mars 2003 Statut Membre Dernière intervention 25 juin 2010 - 31 août 2006 à 20:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8724-recuperer-le-numero-auto-d-un-champ-apres-ajout

medicair Messages postés 37 Date d'inscription vendredi 28 mars 2003 Statut Membre Dernière intervention 25 juin 2010 2
31 août 2006 à 20:34
Quelqu'un à une idée ? pour récupérer cet ID auto ?

D'avance merci
medicair Messages postés 37 Date d'inscription vendredi 28 mars 2003 Statut Membre Dernière intervention 25 juin 2010 2
31 août 2006 à 20:33
bonjour, effectivement, j'utilise la méthode de MCJO seulement apres l' insert j'arrive à récupérer n'importe quel champs sauf l'Id auto-incrémenté (ASP/MySQL) :
Dim flat
Dim tito
'définit le Recordset
Dim chaine
set objconn=server.createobject("ADODB.Connection")
chaine = "dsn=datamysql;uid=xxx;option=16386"
objconn.open chaine
Set flat = Server.CreateObject("ADODB.Recordset")
'Ouvre le Recordset
flat.Open "GLM_XXX", objconn, 1,2,2
flat.Addnew
flat.fields("id_X01") = X01
flat.fields("ID_user") = session.SessionID
'MaTable.fields("start") = "'Now()'"
' & vbCrLf
for i=1 to 200
flat.fields("rp"& i)="-"' & vbCrLf
next
'ajoute les données dans la base
flat.update
tito=flat("id_XXX") '(l'auto-incrémenté) celui que je ne récupère pas en revanche, flat.fields("ID_user") pas de problème
response.Write(tito)
'on ferme et on supprime la conn et le flat
flat.Close
Set flat = Nothing
objconn.Close
Set objconn = Nothing
Goldeneye007 Messages postés 70 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juillet 2010
13 févr. 2006 à 11:19
J'ai un problème il me dit que rs n'est pas déclaré il faut ajouter un élément?
vignot Messages postés 1 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 3 octobre 2003
3 oct. 2003 à 12:20
Salut,

je comprend pas trop l'histoire du rs("..") = ".." ...
en tout cas je sais que sur MS Sql Server on peut accéder à une variable @@IDENTITY qui contient l'AutoInc du dernier insert.
C'est fait exprès, on est sur que "le truc" ne se mélange pas les pinceaux comme dit YopYop.
Pour info @@ROWCOUNT "Returns the number of rows affected by the last statement." comme le dit la doc.
cs_Futura Messages postés 8 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 2 novembre 2003
11 juil. 2003 à 09:47
Une fois cette valeur récupéré, comment puis-je la stocker dans une variable globale à toutes les frames jusqu'à la fin de la connexion ?

Merci de votre aide
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
8 janv. 2002 à 04:52
Non seulement on gagne une connection, mais en plus son code ne fonctionne pas toujours...
En effet, admettons qu'il y ait deux requêtes en +- même temps... il se peut que le truc se mélange les pinceaux et inverse les nouvelles ids...

Quand à la 2ème soluce, elle fonctionne bien pour autant que l'on utilise le bon curseur de BD :)
t'as methode est rigolote mais apres un addnew et un update on peur faire directement :
rs.addnew
rs("..") = ".."
rs.update
recup=rs("Champ_numeroauto")
rs.close
et voila on a ganer une ouverture de base
Rejoignez-nous