begin process at 2010 02 10 04:30:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP / ASP3

 > 

Base de données

 > 

MySQL

 > 

récupérer l'id auro-incrementé asp/mysql


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

récupérer l'id auro-incrementé asp/mysql

jeudi 31 août 2006 à 23:05:55 | récupérer l'id auro-incrementé asp/mysql

medicair

bonjour, 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 n'arrivepas à récupérer en revanche, flat.fields("ID_user") pas de problème
response.Write(tito)
'on ferme et on supprime objconn et le flat
flat.Close
Set flat = Nothing
objconn.Close
Set objconn = Nothing
%>
Quelqu'un peut il m'éclairer pour récupérer cet ID ?

D'avance merci
SDA

vendredi 1 septembre 2006 à 00:04:00 | Re : récupérer l'id auro-incrementé asp/mysql

nhervagault

Administrateur CodeS-SourceS
Salut Pour recuperer le dernier ID de mysql c'est LAST_INSERT_ID exemple UPDATE Chant SET CHANT_NOM="le titre du chant" WHERE Chant.CHANT_ID=LAST_INSERT_ID(); Apres à toi de completer ton code ;-) Voila
jeudi 28 septembre 2006 à 06:57:03 | Re : récupérer l'id auro-incrementé asp/mysql

zaptaf

Réponse acceptée !
Pour répondre à ta question, voici quelques bons conseils et un script rapide sur le pouce.
Avec Le modèele ADO, c'était facile de retirer sur le même script l'id inséré en ajouter

Mais le modèle SQL est le même pour presque tous les moteurs SQL :  La  méthode execute passée vers l'objet de connexion
insert un nouvel enrégistrement sans tenir compte de la clé ou du compteur auto-incrémenté.

Alors je ne me sert jamais de last_insert_id car, n'oublions jamais que plusieurs utlisateurs font des requêtes d'update, insertion ou modification en même temps,-  parfois plus de 15 en moins d'une seconde----. Qui garanti alors qu'il sagit bien de ta propre insertion et non une autre entremelée dans le tas? Alors j'évite au max le Last_insert_id.

Je propose plutôt une facon de faire, un peu dada mais qui asssure pour 100% la récupération de l'ID, ou du champ désiré au cas ou plusieurs insertion deraient effectuées en même temps.

Mise en situation :
L'utilisateur ajoute une annonce classée en exécutant la req d'insertion, mais en y inserant temporairement ou indéfiniement une référence d'insertion. Il ouvre par la suite un nouveau recordset qui va chercher le recordset contenant la référence, et voilà. Tu peux même supprimer cette référence une fois que tu a recu l'id, etc......

Normallement j'utilise une connexion permanente pour la base de données, dans mon global.asa, pour que le base soit toujours ouverte pour tous les utilisateurs : application("objconnexion").execute(SQL), mais allons en partant du fait que tu dois travailler avec un include de connexion unique......................

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
'les variables de ton choix
variablexX= "blablabla"
variableY ="bliblibli"

' construction d'une chaine de référence unique basée sur ce que tu veux et la variable de temps, ce qui assure que ce soit la seule référence sur des millions de jeux, étant donné que le temps et la date sont uniques, mais ne pas oublier au moins une variable de plus, car on peut noter une moyenne de 15 insertions en simultané par seconde sur un portail achalandé.

StrRef Temp= variableX & variableY & now()
'on passe la requete
req = "INSERT INTO latable (variableX,variableY,ref) VALUES(.......variableX,variableY,StrRefTemp......................)
set objrecordset = objconnexion.execute(req)
'on redéfni alors une nouvelle requete pour chercher l'id du jeu fraichement inséré
req = "SELECT * FROM latable where ref like"& ........StrRef Temp........"
  set objrecordset = objconnexion.execute(req)
' on récupère  l'id recherché au départ
 id_annonce = objecordset("id_annonce")
%>

et on ferme le recorsdset, la connexion, bla bla

N'hésites- pas èa m'écrire pour toute question, ou suggestion. Je travail en asp3 et mysql sur un gigantesque portail. Tu auras certainement besoin de script de page suivante, précédente pour les résultats de recherches.

Le typage des curseurs sont inexistant je crois en MYSQL. Genre objrecordset.Absolutepage, etc, c'est mort en Mysql.

Je ne sais pas si c'est légal sur ce site, je suis nouveau, mais je laisse mon courriel, au cas ou il y aurait d'autres mordus de l'asp traditionnel , connecté sur MYSQL, ou Acces.

En espérant que ca puisse t'aider

Sébastien

zaptaf@hotmail.com




Cette discussion est classée dans : récupérer, fields, id, objconn, flat


Répondre à ce message

Sujets en rapport avec ce message

SQL et ASP : pb avec les recordset [ par chris2000 ] Bonjour,Dans une de mes tables, je souhaite récupérer la valeur maximale de l'un des champs.Ex : uilisateur a un nom, un id, je veux récupérer le id M Récupérer l'ID, Ajout d'un enregistrement dans Access. [ par lmu ] Hello,J'ai une base de donnée Access que j'alimente avec un formulaire ASPX.Quand l'enregistrement est ajouté, j'ai besoin de récupérer l'ID (clé prim Récupérer name id et value d'un <option> en ASP [ par ypikai ] Bonjour,Alors voilà j'ai un code html qui ressemble à ça : <option id=0 name=1 value="toto1"& Recuperation ID [ par Jackboy ] Permettre d'avoir l'id (sous access avec numero auto) de l'usager ajouter (addnew)Je fais la requete suivant le update, ce qu'il devrai pouvoir me don Récupérer les données d'une BD [ par burton980 ] Bonjour, je suis débutant en asp.net et je n'arrive pas à trouver réponse à ma question j'espère que vous pourrez m'aider.Je veux simplement récupérer Récupérer ID d'un élément dans un control composite [C#] [ par Bubuss ] Lorsque je créé un control composite sur le rendu j'ai toujours une balise :Elle entour le rendu de mon controlCôté code les éléments contenu dans mon Récupérer l'ID [ par primactif ] Bonjourje cherche à passer l'id d'une image dans un script pour l'animation Ajax.Exempleasp<font color="#0000f Récupérer l'ID ou le name d'un controle ASP.NET [ par ccml ] Bonjour,Je crée par programme un ensemble de contrôles textbox sur une page Web. J'aurais besoin de récupérer l'ID ou le Name du textbox sur lequel l' Récupérer le ID d'unCombobox [ par Dellys ] BonjourVoila j'ai un combobox ,qui est alimenté depuis une Table, sur le combo j'affiche la désignation du item mais ce je veux récupérer c'est  le Récupérer l'ID après un insert [ par equinoxe83 ] Bonjour,J'ai une proc stockée d'insertion. Je souhaite qu'ell retourne la valeur de la clé d'index créé.J'ai essayé avec return ou output mais lors de


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales