error 0是因为人数角色里有数据库里没有的东西。。
这个问题很多人都遇到过,选完角色进后出现断开连接,error 0错误,,
从服务端日志分析上看是少了数据库和表,这个少掉的数据库是 "PS_UserLog_当前日期" 命名的,比如PS_UserLog_201003,,里面会建立一个UserLog24表,记录了用户退出的信息,,
解决办法一:每天建一个数据库,名称为上面一行,,然后建立表,
CREATE TABLE [dbo].[UserLog+当天月号] (
[row] [int] IDENTITY (1, 1) NOT NULL ,
[UserUID] [int] NULL ,
[SessionID] [bigint] NULL ,
[LogoutType] [smallint] NULL ,
[ErrType] [int] NULL ,
[LogType] [int] NULL ,
[LogTime] [datetime] NULL
) ON [PRIMARY]
GO
方法一不是很好,,推荐方法二
本文来自织梦
解决办法二:修改PS_UserData下的过程。usp_Try_GameLogout_R
把里面的语句复制为下面的。
5u wl.net这就把用户的退出信息全都存到了PS_GameLog下的UserLog表。
CREATE Proc usp_Try_GameLogout_R
@UserUID int,
@SessionID bigint,
@LogoutType smallint = 0,
@ErrType int = 0
AS
SET NOCOUNT ON
DECLARE @LogTime datetime
DECLARE @Sql nvarchar(4000)
DECLARE @yyyy varchar(4)
DECLARE @mm varchar(2)
DECLARE @dd varchar(2)
DECLARE @LogType bit -- Login:0, Logout:1
SET @LogType = 1
SET @LogTime = GETDATE()
SET @yyyy = DATEPART(yyyy, @LogTime)
SET @mm = DATEPART(mm, @LogTime)
SET @dd = DATEPART(dd, @LogTime)
IF( LEN(@mm) = 1 )
BEGIN
SET @mm = '0' + @mm
END
IF( LEN(@dd) = 1 )
BEGIN
SET @dd = '0' + @dd dedecms.com
END
SET @Sql = N'
INSERT INTO PS_GameLog.[dbo].UserLog
(SessionID, UserUID, LogType, LogTime, LogoutType, ErrType)
VALUES(@SessionID, @UserUID, @LogType, @LogTime, @LogoutType, @ErrType)'
EXEC sp_executesql @Sql,
N'@SessionID bigint, @UserUID int, @LogType bit, @LogTime datetime, @LogoutType smallint, @ErrType int',
@SessionID, @UserUID, @LogType, @LogTime, @LogoutType, @ErrType
SET NOCOUNT OFF
GO