1310登陆时的问题,解决了的请进。。。
登陆游戏如果帐号或密码输入错误,怎么总是提示错误255,请问如何能将提示改为“帐号或密码错误”这样的提示,我试着按1299哪样改了下面的SET @nRet = 0 换为 SET @nRet = 2 或3,结果都是无论输什么号都能进游戏,但库中没有该帐号下面是登陆时的存贮过程,请高手指点1310中该如何改
CREATE PROCEDURE .
@AccountID varchar(21),
@Password varchar(32),
@nRet smallint OUTPUT
AS
DECLARE @pwd varchar(32), @Authority int, @count int, @Nation int, @CharNum int
BEGIN
-- <RETRIEVE ACCOUNT DATA>
SELECT @pwd = strPasswd, @Authority = strAuthority FROM TB_USER WHERE strAccountID = @AccountID
-- </RETRIEVE ACCOUNT DATA>
-- <ACCOUNT DOES NOT EXIST>
IF @@ROWCOUNT = 0
BEGIN
SET @nRet = 0
RETURN
END
-- </ACCOUNT DOES NOT EXIST>
-- <BANNED>
IF @Authority = 255
BEGIN
SET @nRet = 0
RETURN
END
-- </BANNED>
-- <EMPTY PASSWORD>
ELSE IF @pwd IS NULL
BEGIN
SET @nRet = 0
RETURN
END
-- </EMPTY PASSWORD>
-- <INVALID PASSWORD>
ELSE IF @pwd <>@Password
BEGIN
SET @nRet = 0
RETURN
END
-- </INVALID PASSWORD>
-- <RETRIEVE NATION AND CHARACTER COUNT>
SELECT @Nation = bNation, @CharNum = bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID
-- </RETRIEVE NATION AND CHARACTER COUNT>
-- <NO NATION SELECTED>
IF @@ROWCOUNT = 0 OR @CharNum = 0
BEGIN
SET @nRet = 1
END
-- </NO NATION SELECTED>
ELSE
-- <NATION ALREADY SELECTED>
BEGIN
SET @nRet = @Nation + 1
END
-- </NATION ALREADY SELECTED>
END
GO 换L啊 和储存啊 1310的数据库密码是MD5格式的 我改成不是MD5格式了,和1299的一样 L程序有问题 28085279 你的1310服务端,进游戏到选择人物那里就没反应了。 CREATE PROCEDURE .
@AccountID varchar(21),
@Password varchar(32),
@nRet smallint OUTPUT
AS
DECLARE @pwd varchar(32), @Authority int, @count int, @Nation int, @CharNum int
BEGIN
-- <RETRIEVE ACCOUNT DATA>
SELECT @pwd = strPasswd, @Authority = strAuthority FROM TB_USER WHERE strAccountID = @AccountID
-- </RETRIEVE ACCOUNT DATA>
-- <ACCOUNT DOES NOT EXIST>
IF @@ROWCOUNT = 0
BEGIN
SET @nRet = 0
RETURN
END
-- </ACCOUNT DOES NOT EXIST>
-- <BANNED>
IF @Authority = 255
BEGIN
SET @nRet = 0
RETURN
END
-- </BANNED>
-- <EMPTY PASSWORD>
ELSE IF @pwd IS NULL
BEGIN
SET @nRet = 0
RETURN
END
-- </EMPTY PASSWORD>
-- <INVALID PASSWORD>
--ELSE IF @pwd <>SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', @Password)), 3, 32)
ELSE IF @pwd <> master.dbo.xp_md5(@Password)
BEGIN
SET @nRet = 0
RETURN
END
-- </INVALID PASSWORD>
-- <RETRIEVE NATION AND CHARACTER COUNT>
SELECT @Nation = bNation, @CharNum = bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID
-- </RETRIEVE NATION AND CHARACTER COUNT>
-- <NO NATION SELECTED>
IF @@ROWCOUNT = 0 OR @CharNum = 0
BEGIN
SET @nRet = 1
END
-- </NO NATION SELECTED>
ELSE
-- <NATION ALREADY SELECTED>
BEGIN
SET @nRet = @Nation + 1
END
-- </NATION ALREADY SELECTED>
END
GO 安装方法】
① 通过执行 SQL 语句注册存储过程:
打开 Master 数据库,然后执行下面 SQL 语句
EXEC sp_addextendedproc 'xp_md5', 'd:\pathname\xp_md5.dll'
如果注册的文件不包含路径,只有文件名,MSSQL会在这个文件夹里面找这个.dll
C:\Program Files\Microsoft SQL Server\MSSQL\Binn
CREATE FUNCTION . (@data IMAGE, @len INT = -1)
RETURNS CHAR(32) AS
BEGIN
DECLARE @hash CHAR(32)
EXEC master.dbo.xp_md5 @data, @len, @hash OUTPUT
RETURN @hash
END
CREATE FUNCTION . (@data TEXT)
RETURNS CHAR(32) AS
BEGIN
DECLARE @hash CHAR(32)
EXEC master.dbo.xp_md5 @data, -1, @hash OUTPUT
RETURN @hash
END
dbo.fn_md5(@Password) 看不懂!
页:
[1]