自己写了一个服务器程序,需要注册和登陆,数据库想用存储过程,用户名和密码区分大小写。数据库是 sqlserver2000。thxs!!!!登陆的搞定了
--0-成功 1-用户名密码错误, -1-其他错误
CREATE PROCEDURE UserLogin
@User_Name nvarchar(16),
@Hash_Pass nvarchar(16),
@User_ID int output
ASset @User_ID = -1
declare @num as int
select @User_ID = UserID from BaseInfo where UserName = @UserName and HashPass = @Hash_Pass
if @@error <> 0
begin
return -1
end
if @User_ID = -1
begin
return 2
end
--已经正确了
return 0
Go
注册的怎么写?
--0-成功 1-用户名密码错误, -1-其他错误
CREATE PROCEDURE UserLogin
@User_Name nvarchar(16),
@Hash_Pass nvarchar(16),
@User_ID int output
ASset @User_ID = -1
declare @num as int
select @User_ID = UserID from BaseInfo where UserName = @UserName and HashPass = @Hash_Pass
if @@error <> 0
begin
return -1
end
if @User_ID = -1
begin
return 2
end
--已经正确了
return 0
Go
注册的怎么写?
解决方案 »
- 怎么查看SQL SERVER 2005里面已经建好的约束的值,我想拷贝那个约束?
- 谁遇过到sql server 2000 出这种情况??
- 救急,性能查看器里的process:%processor time sqlserver跟process:%user time sqlserver高的出奇
- SQl问题两个帖子一起结贴一共200分
- 求一对多查询SQL语句
- 日统计输出
- 我机子上怎么不能装SQLServer2000
- mater是什么东西
- 求一个关于case的sql语句
- 存储过程执行一次后,表中的数据是随着基表数据更新吗?
- SQL 高手请进!!急
- [高手请进]求助openrowset访问access的问题
@User_Name nvarchar(16),
@Hash_Pass nvarchar(16),
@Status int output
AS
BEGIN
SET @Status=-1
IF exists(select 1 from BaseInfo where UserName=@UserName)
return
insert into BaseInfo(UserName,HashPass) values(@UserName,@Hash_Pass)
if @@error <> 0
begin
SET @Status=-2
return
end
set @Status=0
returnEND
GO
@User_Name nvarchar(16),
@Hash_Pass nvarchar(16),
@Status int output
AS
BEGIN
SET @Status=-1
--已经存在相同的用户名,返回-1
IF exists(select 1 from BaseInfo where UserName=@UserName)
return
insert into BaseInfo(UserName,HashPass) values(@UserName,@Hash_Pass)
--insert操作失败,返回-2
if @@error <> 0
begin
SET @Status=-2
return
end
--注册操作成功,返回0
set @Status=0
return
END
GO用户注册数据的字段比较多,在存储过程参数中加上即可;在此基础上还可以做鞋其他的校验。
CREATE PROCEDURE UserLogin
@User_Name nvarchar(16),
@Hash_Pass nvarchar(16),
@User_ID int output
AS
set @User_ID = -1
Select @User_ID = UserID from BaseInfo
where UserName = @UserName and cast(HashPass as varbinary)=cast(@Hash_Pass as varbinary)
if @@error <> 0
return -1 if @User_ID = -1
return 2 --已经正确了
return 0
Go
------------------------------------
cast(字段 as varbinary(40))
查找用户名是否存在?存在---已经注册,提示换名--注册失败
不存在 插入数据库用户表内
if exists( select 1 from 用户表 where username = '注册名')
begin
已经注册的用户名
end
else
begin
进行注册
end;