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 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 |