/*
Fun : 用户登陆验证.若密码加密,则由客户端实现
Author : **
CreateTime : 2005-12-23
*/CREATE PROCEDURE pro_UserCheck
@userID as varchar(50),
@passWord as varchar(50),
@sort as int,
@addr as varchar output,
@phone as varchar output,
@userState as int output,
@userSort as int output,
@rpt as int output --0为登陆失败,1为登陆成功
AS
Begin
Select @userSort = UserSort,@userState=UserState,@addr=Addr,@phone=Phone
From tbl_UserInfo
Where UserID = @userID
And [Password] = @passWord
And UserState = 2 or UserState = 1 --2为通过审核并且帐号启用
--And userSort=@sort
And userSort<>3
IF @@rowcount <= 0
Begin
IF ISNULL(@addr,'') = '' or ISNULL(@phone,'') = ''
Begin
Set @rpt = 0
End
Else
Begin
Set @rpt = 1
End
Else
Begin
update tbl_userInfo set userstate=2 Where UserID = @userID
Set @rpt = 1
End
End
GO
本人菜鸟,这段存储过程语法上有错误,IF嵌套语句我可能没写对,请大家给指点一下
/*
Fun : 用户登陆验证.若密码加密,则由客户端实现
Author : **
CreateTime : 2005-12-23
*/CREATE PROCEDURE pro_UserCheck
@userID as varchar(50),
@passWord as varchar(50),
@sort as int,
@addr as varchar output,
@phone as varchar output,
@userState as int output,
@userSort as int output,
@rpt as int output --0为登陆失败,1为登陆成功
AS
Begin
Select @userSort = UserSort,@userState=UserState,@addr=Addr,@phone=Phone
From tbl_UserInfo
Where UserID = @userID
And [Password] = @passWord
And UserState = 2 or UserState = 1 --2为通过审核并且帐号启用
--And userSort=@sort
And userSort<>3
IF @@rowcount <= 0
Begin
IF ISNULL(@addr,'') = '' or ISNULL(@phone,'') = ''
Begin
Set @rpt = 0
End
Else
Begin
Set @rpt = 1
End
END--此处少一个end
Else
Begin
update tbl_userInfo set userstate=2 Where UserID = @userID
Set @rpt = 1
End
End
GO
Begin
之后没有END
还有一个问题 我asp代码userState=Cint(cmd.Parameters("@userState").Value)
userSort=Cint(cmd.Parameters("@userSort").Value) 为什么老提示Cint溢出呢
断点跟踪下cmd.Parameters("@userSort").Value 是多少。
Cint的范围 是 cint范围 -32,768 到 32,767