Estoy tratando de utilizar un procedimiento almacenado de SQL Server con ASP:Valor de retorno en el procedimiento almacenado de SQL Server
ALTER PROCEDURE [dbo].[user_insert]
@firstName NVARCHAR(50) ,
@lastName NVARCHAR(50) ,
@cityid INT ,
@email NVARCHAR(100) ,
@password NVARCHAR(12) ,
@Affiliate INT
AS
BEGIN
DECLARE @index1 INT
SET @index1 = 0
IF (NOT EXISTS (SELECT * FROM dbo.tbl_users
WHERE user_email = @email) )
BEGIN
INSERT INTO dbo.tbl_users
(user_first_name ,
user_last_name ,
city_id ,
user_email ,
user_password ,
Affiliate_id
)
VALUES (@firstName ,
@lastName ,
@cityid ,
@email ,
@password ,
@Affiliate
)
SET @index1 = (SELECT @@IDENTITY
END
RETURN @index1
END
y la ASP es
Set oCmd = Server.CreateObject("ADODB.Command")
oCmd.ActiveConnection = conn
oCmd.CommandText = "user_insert"
oCmd.CommandType = 4
oCmd.Parameters.Append oCmd.CreateParameter("firstName", 203, 1, 100, "1")
oCmd.Parameters.Append oCmd.CreateParameter("lastName", 203, 1, 100, "2")
oCmd.Parameters.Append oCmd.CreateParameter("cityid", 3, 1, 2, 1)
oCmd.Parameters.Append oCmd.CreateParameter("email", 200, 1, 100, txtmail)
oCmd.Parameters.Append oCmd.CreateParameter("password", 203, 1, 12, "2")
oCmd.Parameters.Append oCmd.CreateParameter("Affiliate", 3, 1, 3, 1)
oCmd.Parameters.Append oCmd.CreateParameter("@index1", 3, 2)
Set rs = oCmd.Execute
response.write oCmd.Parameters("@index1").Value &"<br>"
Set oCmd = Nothing
Si corro el SP en el SQL La terminal del servidor está funcionando, pero cuando uso el código asp, si es un "nuevo usuario", no obtengo ningún valor que devuelva "index1"
¿Qué puedo hacer?
quizás ya tengas usuario con ese correo electrónico en la tabla, verifica eso ya que tu SP no devuelve/hace nada cuando esto es cierto –
No hablo de ASP, pero generalmente creo que necesitas crear un parámetro con una bandera especial que significa 'este es el parámetro de valor de retorno SP'. No estoy seguro del nombre, pero cuando uso ADO en Delphi, siempre se llama '@ RETURN_VALUE'. Alguien con antecedentes ASP seguramente debería ayudar más en ese aspecto. –