المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : Proplem at academy


Blizzard
08-03-2017, 01:48 AM
انا عندى زابط الوقت و كل حاجه بس مش رادى يعمل ريفرش كل 12 ساعه زاى مانا ظبطه و لما بعمل ريستارت لى السيرفر الناس الى طلعت اكونتات مش راديه تظهر
انا مش عارف العيب فى ايه دلوقتى ياريت حد يحللى المشكله دى

Dev.Klito
08-03-2017, 11:14 AM
اعمل دى و شوف

USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_TRAINING_CAMP_UPDATEHONORRANK] Script Date: 3/8/2017 11:13:21 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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

Dev.Klito
10-03-2017, 03:29 AM
##