ASP : Récupérer la valeur de la clé primaire
Fermé
calje
Messages postés
83
Date d'inscription
mercredi 21 février 2001
Statut
Membre
Dernière intervention
20 mars 2002
-
6 nov. 2001 à 20:55
PHOENIX - 3 août 2008 à 18:08
PHOENIX - 3 août 2008 à 18:08
A voir également:
- ASP : Récupérer la valeur de la clé primaire
- Clé windows 10 - Guide
- Recuperer cle windows - Guide
- Cle usb non reconnu - Guide
- Recuperer video youtube - Guide
- Clé bootable windows 10 - Guide
4 réponses
quelque soit le langage, il faut passer par une requète en SQL :
Supposons ta table comme suit :
table : ID, champ1, champ2
ID est la clée primaire, AutoNumber incrémental
tu peux utiliser la requète suivante :
SELECT MAX(ID) FROM Table;
Mais cela ne fonctionne QUE, si ta clée s'incrémente automatiquement à chaque enregistrement. Dans le cas contraire (génération aléatoire) cela dépend du SGBD que tu utilises. En Posgresql, par exemple, tu as une fonctions prédéfinie que tu peux utiliser pour consulter l'id du dernier enregistrement d'une table.
Pour contourner la difficulté, tu peux aussi ajouter un champ date dans lequel tu enregistres la date à laquelle tu écris ton enregistrement. A ce moment la tu peux faire :
SELECT MAX(dateCreation) from Table;
A+
Yoann
Supposons ta table comme suit :
table : ID, champ1, champ2
ID est la clée primaire, AutoNumber incrémental
tu peux utiliser la requète suivante :
SELECT MAX(ID) FROM Table;
Mais cela ne fonctionne QUE, si ta clée s'incrémente automatiquement à chaque enregistrement. Dans le cas contraire (génération aléatoire) cela dépend du SGBD que tu utilises. En Posgresql, par exemple, tu as une fonctions prédéfinie que tu peux utiliser pour consulter l'id du dernier enregistrement d'une table.
Pour contourner la difficulté, tu peux aussi ajouter un champ date dans lequel tu enregistres la date à laquelle tu écris ton enregistrement. A ce moment la tu peux faire :
SELECT MAX(dateCreation) from Table;
A+
Yoann
avec SQL SERVER tu dois faire ceci :
Set dbconn = Server.CreateObject("adodb.connection")
dbconn.Open "#####"
Set dbrec = dbconn.execute("insert into ... values (..,.,..); select @@identity").nextrecordset
tu peux maintenant récupérer la clé :
sa valeur est -------> dbrec(0)
***********************************
IMPORTANT
***********************************
cela ne fonctionne que si tu utilises l'incrémentation automatique de ta clé (champ identity)
ex :
CREATE TABLE ####
(
UID int NOT NULL IDENTITY (1,1),
...............................................,
)
@+
Set dbconn = Server.CreateObject("adodb.connection")
dbconn.Open "#####"
Set dbrec = dbconn.execute("insert into ... values (..,.,..); select @@identity").nextrecordset
tu peux maintenant récupérer la clé :
sa valeur est -------> dbrec(0)
***********************************
IMPORTANT
***********************************
cela ne fonctionne que si tu utilises l'incrémentation automatique de ta clé (champ identity)
ex :
CREATE TABLE ####
(
UID int NOT NULL IDENTITY (1,1),
...............................................,
)
@+
calje
Messages postés
83
Date d'inscription
mercredi 21 février 2001
Statut
Membre
Dernière intervention
20 mars 2002
4
8 nov. 2001 à 19:32
8 nov. 2001 à 19:32
Merci pour vos infos.
Finalement, on m'a donné une méthode qui marche très bien et qui utilise les méthodes du recordset :
ex :
' ### Sauvegarde dans ComConseil ###
objRS.Open "ComConseil", objConn, 3, adLockOptimistic
objRS.AddNew
objRS("Nom") = request.QueryString("txtNom")
objRS("Prenom") = request.QueryString("txtPrenom")
objRS("Commentaire") = request.QueryString("txtCommentaire")
objRS("Ordre") = request.QueryString("txtOrdre")
objRS("ID_ComScol") = session("SessID_CS")
objRS.Update
' ### récupère la valeur de la nouvelle clé primaire
vID_ComConseil = objRS("ID_ComConseil")
objRS.close
' ### Sauvegarde dans ComConseilCoord ###
objRS.Open "ComConseilCoord", objConn, 3, adLockOptimistic
for Each strName in request.QueryString
select case strName
case "txtTelephone"
if request.QueryString("txtTelephone") <> "" then
objRS.AddNew
objRS("Coordonnee") = request.QueryString("txtTelephone")
objRS("ID_ComConseil") = vID_ComConseil
objRS("ID_TypeCoord") = 1
objRS.Update
end if
etc ...
Merci pour vos réponses...
José
Finalement, on m'a donné une méthode qui marche très bien et qui utilise les méthodes du recordset :
ex :
' ### Sauvegarde dans ComConseil ###
objRS.Open "ComConseil", objConn, 3, adLockOptimistic
objRS.AddNew
objRS("Nom") = request.QueryString("txtNom")
objRS("Prenom") = request.QueryString("txtPrenom")
objRS("Commentaire") = request.QueryString("txtCommentaire")
objRS("Ordre") = request.QueryString("txtOrdre")
objRS("ID_ComScol") = session("SessID_CS")
objRS.Update
' ### récupère la valeur de la nouvelle clé primaire
vID_ComConseil = objRS("ID_ComConseil")
objRS.close
' ### Sauvegarde dans ComConseilCoord ###
objRS.Open "ComConseilCoord", objConn, 3, adLockOptimistic
for Each strName in request.QueryString
select case strName
case "txtTelephone"
if request.QueryString("txtTelephone") <> "" then
objRS.AddNew
objRS("Coordonnee") = request.QueryString("txtTelephone")
objRS("ID_ComConseil") = vID_ComConseil
objRS("ID_TypeCoord") = 1
objRS.Update
end if
etc ...
Merci pour vos réponses...
José
slt
Moi j'ai un probleme d'ingrementation de la cle dans une base de donnees Access.
Je veux programmer une base de donnees qui gere les etudiants avec les numero matricule.
J'ai la table table qui est composee de : NumMatriculeEtud, NomEtud, PrenomEtud, AdresseEtud.
Je veux quant je saisie le nom , et le prenom que la base prennent les deux premier mot du nom de famille et du prenom puis ajouter un numero auto.
Merci d'avance
Moi j'ai un probleme d'ingrementation de la cle dans une base de donnees Access.
Je veux programmer une base de donnees qui gere les etudiants avec les numero matricule.
J'ai la table table qui est composee de : NumMatriculeEtud, NomEtud, PrenomEtud, AdresseEtud.
Je veux quant je saisie le nom , et le prenom que la base prennent les deux premier mot du nom de famille et du prenom puis ajouter un numero auto.
Merci d'avance
3 août 2008 à 18:08