Voici ma procedure stockée
BEGIN
INSERT INTO [dbo].[T_TypeReglette] (
[LibelleTypeReglette],
[IdUserTypeReglette],
[DateModifTypeReglette]
) VALUES (
@LibelleTypeReglette,
@IdUserTypeReglette,
@DateModifTypeReglette
)
END
BEGIN
SET @NEW_ID=@@IDENTITY
IF @NEW_ID=0
RETURN(0)
ELSE
RETURN(@NEW_ID)
END
Elle fonctionne sans probleme. Mais le truc c'est quand je l'excute dans SQL
Server Entreprise Manager
EXEC @RC = [BCV_Tech].[dbo].[P_Gestion_TypeReglette] @Id_TypeReglette,
@LibelleTypeReglette, @IdUserTypeReglette, @DateModifTypeReglette
print @RC
Le print @RC m'indique le numero du nouvel enregistrement mais le probleme
c'est quand je passe sous VB.NET 2005 je sais pas comment recuperer le RC.
J'ai essayé retval = cmd.ExecuteNonQuery() mais ca me retourne 1 ou 0 et non
le nouvel ID. Je pense que c'est @NEW_ID qui faut que je recupere mais je
sais pas comment faire.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred
Dans : news:, Bouba 85 disait :
Bonjour,
Bonsoir,
Le print @RC m'indique le numero du nouvel enregistrement mais le probleme c'est quand je passe sous VB.NET 2005 je sais pas comment recuperer le RC. J'ai essayé retval = cmd.ExecuteNonQuery() mais ca me retourne 1 ou 0 et non le nouvel ID. Je pense que c'est @NEW_ID qui faut que je recupere mais je sais pas comment faire.
Avec ExecuteScalar peut-être ? (ExecuteNonQuery retourne le nombre de lignes affectées par la commande)
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dans : news:57352196-7637-4A3D-BACE-F5F19A35DC0E@microsoft.com,
Bouba 85 disait :
Bonjour,
Bonsoir,
Le print @RC m'indique le numero du nouvel enregistrement mais le
probleme c'est quand je passe sous VB.NET 2005 je sais pas comment
recuperer le RC. J'ai essayé retval = cmd.ExecuteNonQuery() mais ca
me retourne 1 ou 0 et non le nouvel ID. Je pense que c'est @NEW_ID
qui faut que je recupere mais je sais pas comment faire.
Avec ExecuteScalar peut-être ?
(ExecuteNonQuery retourne le nombre de lignes affectées par la commande)
Le print @RC m'indique le numero du nouvel enregistrement mais le probleme c'est quand je passe sous VB.NET 2005 je sais pas comment recuperer le RC. J'ai essayé retval = cmd.ExecuteNonQuery() mais ca me retourne 1 ou 0 et non le nouvel ID. Je pense que c'est @NEW_ID qui faut que je recupere mais je sais pas comment faire.
Avec ExecuteScalar peut-être ? (ExecuteNonQuery retourne le nombre de lignes affectées par la commande)
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Ghislain Proulx
Bonjour,
La valeur numérique retournée par le ExecuteNonQuery est le nombre de ligne affectée. Pour obtenir le "Return Value", tu dois déclarer un paramètre RETURN_VALUE à ton SqlCommand et lire cette valeur après l'execution. Exemple :
-------------------------------------------------------------------------------- cmdGetSkidDetails = New SqlCommand("sp_InsertTypeReglette", oSqlConn) cmdGetSkidDetails.CommandType = CommandType.StoredProcedure
Dim intID As Int32 intID = Int32.Parse(oMySqlCmd.Parameter("RETURN_VALUE").Value.ToString) --------------------------------------------------------------------------------
Bonne fin de journée
Ghislain Proulx, MCAD
"Bouba 85" a écrit dans le message de news:
Bonjour,
Voici ma procedure stockée BEGIN INSERT INTO [dbo].[T_TypeReglette] ( [LibelleTypeReglette], [IdUserTypeReglette], [DateModifTypeReglette] ) VALUES ( @LibelleTypeReglette, @IdUserTypeReglette, @DateModifTypeReglette ) END BEGIN SET @NEW_ID=@@IDENTITY IF @NEW_ID=0 RETURN(0) ELSE RETURN(@NEW_ID) END Elle fonctionne sans probleme. Mais le truc c'est quand je l'excute dans SQL Server Entreprise Manager EXEC @RC = [BCV_Tech].[dbo].[P_Gestion_TypeReglette] @Id_TypeReglette, @LibelleTypeReglette, @IdUserTypeReglette, @DateModifTypeReglette
print @RC
Le print @RC m'indique le numero du nouvel enregistrement mais le probleme c'est quand je passe sous VB.NET 2005 je sais pas comment recuperer le RC. J'ai essayé retval = cmd.ExecuteNonQuery() mais ca me retourne 1 ou 0 et non le nouvel ID. Je pense que c'est @NEW_ID qui faut que je recupere mais je sais pas comment faire.
Merci de m'aider
Bonjour,
La valeur numérique retournée par le ExecuteNonQuery est le nombre de ligne
affectée. Pour obtenir le "Return Value", tu dois déclarer un paramètre
RETURN_VALUE à ton SqlCommand et lire cette valeur après l'execution.
Exemple :
--------------------------------------------------------------------------------
cmdGetSkidDetails = New SqlCommand("sp_InsertTypeReglette", oSqlConn)
cmdGetSkidDetails.CommandType = CommandType.StoredProcedure
Dim intID As Int32
intID = Int32.Parse(oMySqlCmd.Parameter("RETURN_VALUE").Value.ToString)
--------------------------------------------------------------------------------
Bonne fin de journée
Ghislain Proulx, MCAD
"Bouba 85" <Bouba85@discussions.microsoft.com> a écrit dans le message de
news: 57352196-7637-4A3D-BACE-F5F19A35DC0E@microsoft.com...
Bonjour,
Voici ma procedure stockée
BEGIN
INSERT INTO [dbo].[T_TypeReglette] (
[LibelleTypeReglette],
[IdUserTypeReglette],
[DateModifTypeReglette]
) VALUES (
@LibelleTypeReglette,
@IdUserTypeReglette,
@DateModifTypeReglette
)
END
BEGIN
SET @NEW_ID=@@IDENTITY
IF @NEW_ID=0
RETURN(0)
ELSE
RETURN(@NEW_ID)
END
Elle fonctionne sans probleme. Mais le truc c'est quand je l'excute dans
SQL
Server Entreprise Manager
EXEC @RC = [BCV_Tech].[dbo].[P_Gestion_TypeReglette] @Id_TypeReglette,
@LibelleTypeReglette, @IdUserTypeReglette, @DateModifTypeReglette
print @RC
Le print @RC m'indique le numero du nouvel enregistrement mais le probleme
c'est quand je passe sous VB.NET 2005 je sais pas comment recuperer le RC.
J'ai essayé retval = cmd.ExecuteNonQuery() mais ca me retourne 1 ou 0 et
non
le nouvel ID. Je pense que c'est @NEW_ID qui faut que je recupere mais je
sais pas comment faire.
La valeur numérique retournée par le ExecuteNonQuery est le nombre de ligne affectée. Pour obtenir le "Return Value", tu dois déclarer un paramètre RETURN_VALUE à ton SqlCommand et lire cette valeur après l'execution. Exemple :
-------------------------------------------------------------------------------- cmdGetSkidDetails = New SqlCommand("sp_InsertTypeReglette", oSqlConn) cmdGetSkidDetails.CommandType = CommandType.StoredProcedure
Dim intID As Int32 intID = Int32.Parse(oMySqlCmd.Parameter("RETURN_VALUE").Value.ToString) --------------------------------------------------------------------------------
Bonne fin de journée
Ghislain Proulx, MCAD
"Bouba 85" a écrit dans le message de news:
Bonjour,
Voici ma procedure stockée BEGIN INSERT INTO [dbo].[T_TypeReglette] ( [LibelleTypeReglette], [IdUserTypeReglette], [DateModifTypeReglette] ) VALUES ( @LibelleTypeReglette, @IdUserTypeReglette, @DateModifTypeReglette ) END BEGIN SET @NEW_ID=@@IDENTITY IF @NEW_ID=0 RETURN(0) ELSE RETURN(@NEW_ID) END Elle fonctionne sans probleme. Mais le truc c'est quand je l'excute dans SQL Server Entreprise Manager EXEC @RC = [BCV_Tech].[dbo].[P_Gestion_TypeReglette] @Id_TypeReglette, @LibelleTypeReglette, @IdUserTypeReglette, @DateModifTypeReglette
print @RC
Le print @RC m'indique le numero du nouvel enregistrement mais le probleme c'est quand je passe sous VB.NET 2005 je sais pas comment recuperer le RC. J'ai essayé retval = cmd.ExecuteNonQuery() mais ca me retourne 1 ou 0 et non le nouvel ID. Je pense que c'est @NEW_ID qui faut que je recupere mais je sais pas comment faire.