/*
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
Set @rpt =0
End
Else
Begin
IF ISNULL(@addr,'') = '' or ISNULL(@phone,'') = ''
Begin
Set @rpt=0
End
Else
Begin
update tbl_userInfo set userstate=1 Where UserID = @userID
Set @rpt=1
End
End
End
GO
写这个存储过程的主要功能是判断Addr和Phone是否为空,如果为空登录失败,功能是大致实现了,但当Addr和Phone输入为汉字时,程序还是默认为空,不知道是什么问题?
解决方案 »
- 急!!!求修改SQL语句能JSP实现分页显示。
- 求一语句
- 关于SQL2000的一个查询问题?
- 当插入新数据时,如何用事件触发器检测含有非法字符而不进行插入或者删除刚刚已插入的数据???
- sql server05的一个奇怪问题 数据库全部都不见了
- 超级郁闷的问题,特别奇怪,高手们进来帮忙看看
- 如何在select返回的数据中的某一列里面加上内容?
- 两台服务器发布和订阅都建好了,可不能同步,打开监视器显示错误
- 小弟请教一个问题:sql server 2005的analysis services在哪下载?怎么安装啊?(详细点)
- 急求高手。
- SQL条件查询
- 将某个表的记录行,当成是列的问题,不知道说的是否明白,大家进来看下
@phone as varchar output,
varchar 声明的问题
@phone as varchar output,varchar 换 varchar(1000) 或者 nvarchar(1000) 试试!
不会是在登录时还要输入addr和phone吧?
你的@addr和@phone都设置成output型,而且是在查询时由数据表中获取值,如果数据表中本来就为空,那在执行这个过程时,表中的值是不会变的,即使你把这两个参数用实际值带进去,而且还与它是否为中文毫无关系.