Hello RZ
Im having a problem with the honor rank, only 3 players show in the rank of the server
i already tryed deleting it and trying all the querysthat i found on this site, still nothing, i already checked the procedures
i think the procedures are fine, i dont know if i have to wait that other ppl graduate more members or what i should do?PHP Code:USE [SRO_VT_SHARD]GO/****** Object: StoredProcedure [dbo].[_TRAINING_CAMP_UPDATEHONORRANK] Script Date: 06/21/2013 02:05:29 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO
ALTER PROCEDURE [dbo].[_TRAINING_CAMP_UPDATEHONORRANK]AS SET NOCOUNT ON
-- ÀÏ´Ü ·©Å· Å×À̺íÀ» ¼¼ÆÃÇÑ´Ù. DECLARE @Ranking INT SET @Ranking = 1
DECLARE @CampID INT DECLARE @Rank TINYINT
BEGIN TRANSACTION
DECLARE RankCursor CURSOR FAST_FORWARD FOR SELECT TOP 50 [ID] FROM _TrainingCamp WITH (NOLOCK) WHERE EvaluationPoint >= 10 ORDER BY EvaluationPoint DESC, LatestEvaluationDate ASC
-- ÀÏ´Ü Àüü ·©Å·À» ¾øÀ½À¸·Î Ç¥½ÃÇÏÀÚ. UPDATE _TrainingCamp SET Rank = 5 WHERE Rank <> 5 IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION
DEALLOCATE RankCursor RETURN -1 END
-- ·©Å· Å×ÀÌºíµµ ÃʱâÈÇÏÀÚ. UPDATE _TrainingCampHonorRank SET CampID = null, Rank = null IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION
DEALLOCATE RankCursor RETURN -1 END
OPEN RankCursor FETCH NEXT FROM RankCursor INTO @CampID WHILE @@FETCH_STATUS = 0 BEGIN IF @Ranking <= 5 BEGIN SET @Rank = 1 END ELSE IF @Ranking <= 15 BEGIN SET @Rank = 2 END ELSE IF @Ranking <= 30 BEGIN SET @Rank = 3 END ELSE BEGIN SET @Rank = 4 END
UPDATE _TrainingCamp SET Rank = @Rank WHERE [ID] = @CampID IF (@@ERROR <> 0 OR @@ROWCOUNT = 0) BEGIN ROLLBACK TRANSACTION CLOSE RankCursor DEALLOCATE RankCursor
RETURN -2 END UPDATE _TrainingCampHonorRank SET CampID = @CampID, Rank = @Rank WHERE Ranking = @Ranking IF (@@ERROR <> 0 OR @@ROWCOUNT = 0) BEGIN ROLLBACK TRANSACTION CLOSE RankCursor DEALLOCATE RankCursor
RETURN -3 END SET @Ranking = @Ranking + 1
FETCH NEXT FROM RankCursor INTO @CampID END
CLOSE RankCursor DEALLOCATE RankCursor
-- ¸¶Áö¸·À¸·Î °»½ÅÇÑ ³¯Â¥¸¦ Àû¾îº¸ÀÚ!!! IF EXISTS (SELECT LastUpdateDate FROM _TrainingCampHonorRankUpdateDate) BEGIN UPDATE _TrainingCampHonorRankUpdateDate SET LastUpdateDate = GETDATE() END ELSE BEGIN INSERT INTO _TrainingCampHonorRankUpdateDate VALUES (GETDATE()) END
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0) BEGIN ROLLBACK TRANSACTION RETURN -4 END
COMMIT TRANSACTION
SET NOCOUNT OFF
RETURN 1
Because today 1 player beat the number 3 in the rank, he shows up in the rank but the other one dissapeared ... so far i know he should have down to the 4th position , i dont know what to do, plz help me!


Reply With Quote

