begin process at 2012 05 28 12:07:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Base de données

 > 

SQL Server

 > 

Récupérer l'ID après un insert


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

Récupérer l'ID après un insert

mercredi 18 juillet 2007 à 10:14:26 | Récupérer l'ID après un insert

equinoxe83

Membre Club
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 la génération de la requête le système n'en veut pas ...
Quelqu'un aurait-il un exemple ?
Merci d'avance.
mercredi 18 juillet 2007 à 22:20:18 | Re : Récupérer l'ID après un insert

yann_lo_san


-- un insert
insert into table values(v1, v2)

-- le retour avec select
select @@identity as 'RETURN_VALUE'

-- ou avec return
return @@identity

vendredi 27 juillet 2007 à 10:34:57 | Re : Récupérer l'ID après un insert

equinoxe83

Membre Club
Bonjour Yann,
Désolé pour le délai, il m'a fallu faire une pause dans mon développement ...
Merci pour ta réponse!
C'est effectivement ce qu'il m'avait semblé mais peux-tu m'indiquer comment je peux réaliser ce select ou le return ?
En effet, je suis débutant et ne comprend pas ou placer ces instructions.
J'ai bien tenté d'utiliser le return en fin de ma procédure d'insertion mais il n'en veut pas. Il me dit que la procédure stockée n'a pas été créée.
j'utiliser :
INSERT INTO table ...
VALUES ...
RETURN @@identity
Si j'enlève le return, il l'accepte.
Pour le select,  je ne peux pas l'inclure en fin de requ^te me semble-t-il. Si ?
(Comme tu vois, j'en suis au début ...)
Merci de ton aide.
vendredi 27 juillet 2007 à 21:53:14 | Re : Récupérer l'ID après un insert

yann_lo_san

Salut,

USE maBase
GO

CREATE PROCEDURE maProc
   @unParam int output
AS
BEGIN

   DECLARE @unRetourSelect int

   INSERT INTO maTable(champ1, champ2)
   VALUES(val1, val2)   

   IF( @@rowcount > 0 AND @@error <> 0  )
   BEGIN
      
      -- avec output
      SET @unParam = @@identity

      -- OU avec select
      SET @unRetourSelect = @@identity
      SELECT @unRetourSelect as 'RETURN_VALUE'

   END
   ELSE
   BEGIN
      -- erreur avec output
      SET @unParam = -1

      -- OU erreur avec select
      SELECT -1 as 'RETURN_VALUE'
   END

END


Bon courage !

vendredi 27 juillet 2007 à 21:56:32 | Re : Récupérer l'ID après un insert

yann_lo_san

Je rectifie le @@error, il faut qu'il soit = à 0

 IF( @@rowcount > 0 AND @@error = 0  )

@@rowcount doit etre à 1 après un insert et
@@error à 0

Ceci pour etre sur que l'INSERT n'a pas échoué.

samedi 28 juillet 2007 à 09:19:00 | Re : Récupérer l'ID après un insert

equinoxe83

Membre Club
Bonjour Yann et Merci pour la proc !
J'avais déjà tenter une telle approche mais le Pb c'est que dès que j'essaie de modifier la proc proposée par le générateur (de VWD), il aboie (impossible de l'analyser).
J'avais mis celà sur le compte de mon inexpérience mais en plaçant la tienne (modifiée pour mes besoins, bein entendu), c'est ma même chose.
Est-ce normal ? dois-je passer outre ??
Sinon, dès que j'aura réglé ce Pb, comment je fais pour exploiter la valeur retournée (en VB). Pour exposer le contacte, je réalise l'insert à partir d'un formview et j'imagine que c'est dans l'évènement itemInserted que je pourrai récupérer cette valeur. Je me trompe ?
J'ai vu un post qui évoquait l'ajout d'un param à un objet dataset. C'est par là que je récupère mon ID ??
Soit dit en passant, je trouve curieux que MS n'ai pas prévu plus de doc sur ce point qui me semble pourtant essentiel ...
En tout cas, merci pour ton aide précieuse !

 
samedi 28 juillet 2007 à 17:43:22 | Re : Récupérer l'ID après un insert

yann_lo_san

Réponse acceptée !

As tu essayé de remplacer CREATE PROC par ALTER PROC
Si la proc est déjà dans le moteur, il faut un alter.

Désolé mais j'utilise CSharp et je ne connais pas le formView,
mais du coup avec un SqlCommand c'est super simple :

De mémoire :

SqlCommand cmd = new SqlCommand("Proc", connexion);
cmd.CommandType = CommandType.storedProcedure;

SqlParameters p = new SqlParameters("@unParam");
p.Direction = Direction.output;
cmd.Parameters.Add(p);

// exécute la cmd

// pour le récupérer :
Int32 ret = Int32.Parse(cmd.Parameters["@unParam"]);

Je pense qu'en VB y'a les mêmes classes genre SqlConnection, SqlCommand, SqlDataReader ect...

A plus.

samedi 28 juillet 2007 à 19:00:31 | Re : Récupérer l'ID après un insert

equinoxe83

Membre Club
Merci pour ton aide Yann ... et ta patience !!
Pour la proc, il suffisait de l'ouvrir directement (sans passer par le générateur de requêtes) pour y inclure les éléments que tu m'as transmis.
Pour la récupération de l'ID, pas de Pb pour le C#! Je vois l'a construction et vait m'en inspirer sur mon objectdatasource.
Je posterai un dernier message pour donner la traduc en VB.
Encore merci pour ton assistance !!!!
@+
Frédéric
PS : Pour mémo, les Formview sont utilisabales en Vb et C#. Pas mal du tout ... pour des débutants comme moi (hi,hi)!
Bye



Cette discussion est classée dans : récupérer, insert, id


Répondre à ce message

Sujets en rapport avec ce message

Récupérer l'ID après un INSERT INTO [ par audile ] Bonjour,Est-ce qu'une fonction en ASP.NET permet de récupérer l'identifiant de l'enregistrement qu'on vient d'insérer avec un INSERT INTO ?Merci d'ava Detailsview, Guid, Insert [ par dji200 ] Bonjour à tous,J'aimerais que vous m'aidiez à faire un truc simple mais visiblement non prévu par .net 2.0J'ai un detailsview, j'aimerais que l'on ins Récupérer la valeur d'un champ avec GridView [ par rom268 ] Bonjour, j'ai un énorme probléme !Pour faire simple j'ai un tableur GridView en relation avec une base de donnée, avec 3 champs. Un pour le nom, un po 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 le nom de l'ID dans un GridView [ par Portman07 ] Bonjour,Je vous écris pour vous faire part de ma difficulté à récupérer le nom d'un ID dans un GridView.Je récupère d'une base de données une liste de Récupérer des données d'une base [ par MaKirby ] Bonjour, J'ai un petit problème concernant la récupération de données à partir d'une base de données SQLServer. Je voudrais récupérer certaines donn StrSQL: insert into [ par rainah ] Bonjour,Dépassée par les evenements, je vous envoie mon code.. si quelqu'un peut m'aider a resoudre:Fichier:: accueil.asp<input type="button" onClick= Récupérer un paramètre URL dans une restriction d'un SQLdataSource [ par Fo0Zie ] Bonjour à tous,Je voudrais récupérer mon paramètre URL pour le mettre dans une clause where de mon sqlDataSource qui sert à alimenter mon  gridview.J' Grid View récupérer l'id de la ligne sélection avec un imgButton [ par Fo0Zie ] Bonjour à tous,J'ai un  problème avec mon grid view. Je n'arrive pas à récupérer l'id et la valeur (le texte) de ma ligne sélectionné à l'aide d'un im


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 4,820 sec (3)

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