@Id Int output,
@userClass nvarchar(20) output,
@department nvarchar(20) output,
@purview nvarchar(20) output,
@userName nvarchar(20),
@passWord nvarchar(20),
@IP nvarchar(20)
AS
if exists(select id from [zd_user_admin] where UserName = @userName and [Password] = @passWord) begin
begin transaction
update [zd_user_admin] set LastLoginTime = getdate(), LastLoginIP = @IP,logins = logins+'a' where UserName = @Username
if @@error<>0 begin
rollback transaction
return -1
end
commit transaction
select @Id=Id,@userClass=userClass,@department=department,@purview=purview from [zd_user_admin] where UserName = @userName
return 0
end
return 1
GO
为什么程序中捕获不到return -1这个值呢?
logins是int型,我有意让它+a,也就是想让它报错,返回-1,但是程序中捕获的却是空值
如果改成+1可以正常返回0或者1
DIM MyComm : Set MyComm = Server.CreateObject("ADODB.Command")
with MyComm
.ActiveConnection = Conn
.CommandText = "zd_kjjLogin"
.CommandType = 4
.Prepared = true
.Parameters.append .CreateParameter("RETURN",2,4)
.Parameters.append .CreateParameter("@ID",3,2,4)
.Parameters.append .CreateParameter("@userClass",200,2,20)
.Parameters.append .CreateParameter("@department",200,2,20)
.Parameters.append .CreateParameter("@purview",200,2,20)
.Parameters.append .CreateParameter("@UserName",200,1,20,userName)
.Parameters.append .CreateParameter("@Password",200,1,20,passWord)
.Parameters.append .CreateParameter("@ip",200,1,20,ip)
.Execute
end with
response.write MyComm(0)
这是调用程序