Je ne suis pas expert en Sql... je souhaite retourner un code erreur suite à une procédure stockée.
Voici son code :
ALTER PROCEDURE [dbo].[wb_ActivateAccount] ( @Login VARCHAR(12), @Password VARCHAR(16) )
AS BEGIN
DECLARE @CodeReturn BIT
IF (EXISTS(SELECT COUNT(1) FROM Account WHERE Login = @Login AND Password = @Password)) BEGIN
UPDATE Account SET IsActivated = 'True' WHERE Login = @Login AND Password = @Password
SELECT @CodeReturn = 1
END ELSE BEGIN
SELECT @CodeReturn = 0
END
END
Via l'Entreprise Manager (je n'es pas son nom en tête en 2005), j'obtiens toujous 0 même quand le UPDATE est réalisé... je dois mal m'y prendre...
Delf
Gilles LE BARBIER a émis l'idée suivante :
Pourquoi ne pas utiliser la fonction RETURN( ) ?
Car elle lne me retourne rien... dans mon SqlDataReader côté DOTNET, je ne récupère pas de ligne/colonne...
Avec le SELECT 1, ça fonstionne, il y avait une erreur dans le IF, il fallait mettre SELECT 1 et non SELECT COUNT(1) qui retourne toujours un résultat...
-- Delf
Gilles LE BARBIER a émis l'idée suivante :
Pourquoi ne pas utiliser la fonction RETURN( ) ?
Car elle lne me retourne rien... dans mon SqlDataReader côté DOTNET, je
ne récupère pas de ligne/colonne...
Avec le SELECT 1, ça fonstionne, il y avait une erreur dans le IF, il
fallait mettre SELECT 1 et non SELECT COUNT(1) qui retourne toujours un
résultat...
Car elle lne me retourne rien... dans mon SqlDataReader côté DOTNET, je ne récupère pas de ligne/colonne...
Avec le SELECT 1, ça fonstionne, il y avait une erreur dans le IF, il fallait mettre SELECT 1 et non SELECT COUNT(1) qui retourne toujours un résultat...
-- Delf
Philippe TROTIN [MS]
SELECT @CodeReturn = 1 ou 0 va affecter à la variable @CodeReturn la valeur 0 ou 1.
Si vous faisiez tout simplement :
SELECT 1 AS CodeReturn ou SELECT 0 AS CodeReturn
Autre solution : Définir une variable OUTPUT.
Cordialement _______________________________
Philippe TROTIN Microsoft Services France _______________________________ "Delf" a écrit dans le message de news:
Bonsoir.
Je ne suis pas expert en Sql... je souhaite retourner un code erreur suite à une procédure stockée.
Voici son code :
ALTER PROCEDURE [dbo].[wb_ActivateAccount] ( @Login VARCHAR(12), @Password VARCHAR(16) )
AS BEGIN
DECLARE @CodeReturn BIT
IF (EXISTS(SELECT COUNT(1) FROM Account WHERE Login = @Login AND Password = @Password)) BEGIN
UPDATE Account SET IsActivated = 'True' WHERE Login = @Login AND Password = @Password
SELECT @CodeReturn = 1
END ELSE BEGIN
SELECT @CodeReturn = 0
END
END
Via l'Entreprise Manager (je n'es pas son nom en tête en 2005), j'obtiens toujous 0 même quand le UPDATE est réalisé... je dois mal m'y prendre...
-- Delf
SELECT @CodeReturn = 1 ou 0 va affecter à la variable @CodeReturn la valeur
0 ou 1.
Si vous faisiez tout simplement :
SELECT 1 AS CodeReturn
ou
SELECT 0 AS CodeReturn
Autre solution : Définir une variable OUTPUT.
Cordialement
_______________________________
Philippe TROTIN
Microsoft Services France
_______________________________
"Delf" <abuse@wanadoo.fr> a écrit dans le message de
news:mn.4d107d75185bb882.62466@wanadoo.fr...
Bonsoir.
Je ne suis pas expert en Sql... je souhaite retourner un code erreur suite
à une procédure stockée.
Voici son code :
ALTER PROCEDURE [dbo].[wb_ActivateAccount]
(
@Login VARCHAR(12),
@Password VARCHAR(16)
)
AS
BEGIN
DECLARE @CodeReturn BIT
IF (EXISTS(SELECT COUNT(1) FROM Account WHERE Login = @Login AND Password
= @Password))
BEGIN
UPDATE Account SET IsActivated = 'True' WHERE Login = @Login AND Password
= @Password
SELECT @CodeReturn = 1
END
ELSE
BEGIN
SELECT @CodeReturn = 0
END
END
Via l'Entreprise Manager (je n'es pas son nom en tête en 2005), j'obtiens
toujous 0 même quand le UPDATE est réalisé... je dois mal m'y prendre...
SELECT @CodeReturn = 1 ou 0 va affecter à la variable @CodeReturn la valeur 0 ou 1.
Si vous faisiez tout simplement :
SELECT 1 AS CodeReturn ou SELECT 0 AS CodeReturn
Autre solution : Définir une variable OUTPUT.
Cordialement _______________________________
Philippe TROTIN Microsoft Services France _______________________________ "Delf" a écrit dans le message de news:
Bonsoir.
Je ne suis pas expert en Sql... je souhaite retourner un code erreur suite à une procédure stockée.
Voici son code :
ALTER PROCEDURE [dbo].[wb_ActivateAccount] ( @Login VARCHAR(12), @Password VARCHAR(16) )
AS BEGIN
DECLARE @CodeReturn BIT
IF (EXISTS(SELECT COUNT(1) FROM Account WHERE Login = @Login AND Password = @Password)) BEGIN
UPDATE Account SET IsActivated = 'True' WHERE Login = @Login AND Password = @Password
SELECT @CodeReturn = 1
END ELSE BEGIN
SELECT @CodeReturn = 0
END
END
Via l'Entreprise Manager (je n'es pas son nom en tête en 2005), j'obtiens toujous 0 même quand le UPDATE est réalisé... je dois mal m'y prendre...
-- Delf
Patrice
En complément, Select retourne un jeu d'enregistrement. RETURN retourne une valeur qui est accessible via la collection Parameters, pas un jeu d'enregistrements d'où le non fonctionnement apparent...
-- Patrice
"Delf" a écrit dans le message de news:
Gilles LE BARBIER a émis l'idée suivante :
Pourquoi ne pas utiliser la fonction RETURN( ) ?
Car elle lne me retourne rien... dans mon SqlDataReader côté DOTNET, je ne récupère pas de ligne/colonne...
Avec le SELECT 1, ça fonstionne, il y avait une erreur dans le IF, il fallait mettre SELECT 1 et non SELECT COUNT(1) qui retourne toujours un résultat...
-- Delf
En complément, Select retourne un jeu d'enregistrement. RETURN retourne une
valeur qui est accessible via la collection Parameters, pas un jeu
d'enregistrements d'où le non fonctionnement apparent...
--
Patrice
"Delf" <abuse@wanadoo.fr> a écrit dans le message de news:
mn.610b7d758de2b4f8.62466@wanadoo.fr...
Gilles LE BARBIER a émis l'idée suivante :
Pourquoi ne pas utiliser la fonction RETURN( ) ?
Car elle lne me retourne rien... dans mon SqlDataReader côté DOTNET, je ne
récupère pas de ligne/colonne...
Avec le SELECT 1, ça fonstionne, il y avait une erreur dans le IF, il
fallait mettre SELECT 1 et non SELECT COUNT(1) qui retourne toujours un
résultat...
En complément, Select retourne un jeu d'enregistrement. RETURN retourne une valeur qui est accessible via la collection Parameters, pas un jeu d'enregistrements d'où le non fonctionnement apparent...
-- Patrice
"Delf" a écrit dans le message de news:
Gilles LE BARBIER a émis l'idée suivante :
Pourquoi ne pas utiliser la fonction RETURN( ) ?
Car elle lne me retourne rien... dans mon SqlDataReader côté DOTNET, je ne récupère pas de ligne/colonne...
Avec le SELECT 1, ça fonstionne, il y avait une erreur dans le IF, il fallait mettre SELECT 1 et non SELECT COUNT(1) qui retourne toujours un résultat...
-- Delf
Delf
Patrice a formulé ce lundi :
En complément, Select retourne un jeu d'enregistrement. RETURN retourne une valeur qui est accessible via la collection Parameters, pas un jeu d'enregistrements d'où le non fonctionnement apparent...
Et comment puis-je récupérer le résultat d'un RETURN côté DOTNET ? Merci.
-- Delf
Patrice a formulé ce lundi :
En complément, Select retourne un jeu d'enregistrement. RETURN retourne une
valeur qui est accessible via la collection Parameters, pas un jeu
d'enregistrements d'où le non fonctionnement apparent...
Et comment puis-je récupérer le résultat d'un RETURN côté DOTNET ?
Merci.
En complément, Select retourne un jeu d'enregistrement. RETURN retourne une valeur qui est accessible via la collection Parameters, pas un jeu d'enregistrements d'où le non fonctionnement apparent...
Et comment puis-je récupérer le résultat d'un RETURN côté DOTNET ? Merci.
-- Delf
Delf
Philippe TROTIN [MS] a pensé très fort :
SELECT @CodeReturn = 1 ou 0 va affecter à la variable @CodeReturn la valeur 0 ou 1.
Si vous faisiez tout simplement :
SELECT 1 AS CodeReturn ou SELECT 0 AS CodeReturn
C'est ce que je fais sans renommer la colonne vu que j'utilise .GetString(0).
-- Delf
Philippe TROTIN [MS] a pensé très fort :
SELECT @CodeReturn = 1 ou 0 va affecter à la variable @CodeReturn la valeur 0
ou 1.
Si vous faisiez tout simplement :
SELECT 1 AS CodeReturn
ou
SELECT 0 AS CodeReturn
C'est ce que je fais sans renommer la colonne vu que j'utilise
.GetString(0).
SELECT @CodeReturn = 1 ou 0 va affecter à la variable @CodeReturn la valeur 0 ou 1.
Si vous faisiez tout simplement :
SELECT 1 AS CodeReturn ou SELECT 0 AS CodeReturn
C'est ce que je fais sans renommer la colonne vu que j'utilise .GetString(0).
-- Delf
Patrice
Voir : http://msdn2.microsoft.com/fr-fr/library/yy6y35y8(VS.80).aspx (code sous "Exemple SqlClient").
La collection des paramètres comporte un paramètre RETURN_VALUE qui est la valeur retournée par la procédure stockée. -- Patrice
"Delf" a écrit dans le message de news:
Patrice a formulé ce lundi :
En complément, Select retourne un jeu d'enregistrement. RETURN retourne une valeur qui est accessible via la collection Parameters, pas un jeu d'enregistrements d'où le non fonctionnement apparent...
Et comment puis-je récupérer le résultat d'un RETURN côté DOTNET ? Merci.
-- Delf
Voir :
http://msdn2.microsoft.com/fr-fr/library/yy6y35y8(VS.80).aspx (code sous
"Exemple SqlClient").
La collection des paramètres comporte un paramètre RETURN_VALUE qui est la
valeur retournée par la procédure stockée.
--
Patrice
"Delf" <abuse@wanadoo.fr> a écrit dans le message de news:
mn.750e7d75c9058aea.62466@wanadoo.fr...
Patrice a formulé ce lundi :
En complément, Select retourne un jeu d'enregistrement. RETURN retourne
une valeur qui est accessible via la collection Parameters, pas un jeu
d'enregistrements d'où le non fonctionnement apparent...
Et comment puis-je récupérer le résultat d'un RETURN côté DOTNET ?
Merci.
Voir : http://msdn2.microsoft.com/fr-fr/library/yy6y35y8(VS.80).aspx (code sous "Exemple SqlClient").
La collection des paramètres comporte un paramètre RETURN_VALUE qui est la valeur retournée par la procédure stockée. -- Patrice
"Delf" a écrit dans le message de news:
Patrice a formulé ce lundi :
En complément, Select retourne un jeu d'enregistrement. RETURN retourne une valeur qui est accessible via la collection Parameters, pas un jeu d'enregistrements d'où le non fonctionnement apparent...
Et comment puis-je récupérer le résultat d'un RETURN côté DOTNET ? Merci.