我正在尝试使用SQL Server存储过程与ASP:
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
而 ASP 是
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
如果在 SQL Server 终端中运行存储过程是有效的,但当我使用 ASP 代码时,如果是“新用户”,则没有任何值返回“index1”,该怎么办?
@RETURN_VALUE
。有ASP背景的人肯定可以在这方面提供更多帮助。 - Andriy M