الموضوع: Honer rank
عرض مشاركة واحدة
قديم 23-11-2015, 09:15 PM   #2

Dangers SrO
عضو سوبر



الصورة الرمزية Dangers SrO


• الانـتـسـاب » Jan 2014
• رقـم العـضـويـة » 116041
• المشـــاركـات » 2,589
• الـدولـة » Gizaaa
• الـهـوايـة » SilkRoad4Arab Only One <3
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 26
Dangers SrO صـاعـد

Dangers SrO غير متواجد حالياً



افتراضي رد: Honer rank



الquery دي work 100%
كود PHP:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_TRAINING_CAMP_UPDATEHONORRANK]    Script Date: 05/04/2013 03:10:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE 
[dbo].[_TRAINING_CAMP_UPDATEHONORRANK]
AS
    
SET NOCOUNT ON

    
-- &Agrave;&Iuml;´&Uuml·©&Aring;· &Aring;×&Agrave;&Igrave;&ordm;&iacute;&Agrave;» ¼¼&AElig;&Atilde;&Ccedil;&Ntilde;´&Ugrave;.
    DECLARE @
Ranking    INT
    SET 
@Ranking 1

    
DECLARE @CampID    INT
    
DECLARE @Rank    TINYINT

BEGIN TRANSACTION

    
DECLARE RankCursor CURSOR FAST_FORWARD FOR
    
SELECT TOP 50 [IDFROM _TrainingCamp WITH (NOLOCK)
    
WHERE EvaluationPoint >= 10
    ORDER BY EvaluationPoint DESC
LatestEvaluationDate ASC

    
-- &Agrave;&Iuml;´&Uuml; &Agrave;ü&Atilde;¼ ·©&Aring;·&Agrave;» ¾&oslash;&Agrave;½&Agrave;¸·&Icirc; &Ccedil;¥½&Atilde;&Ccedil;&Iuml;&Agrave;&Uacute;.
    
UPDATE _TrainingCamp SET Rank 5 WHERE Rank <> 5
    
IF (@@ERROR <> 0)
    
BEGIN
        ROLLBACK TRANSACTION

        DEALLOCATE RankCursor
        
RETURN -1
    END

    
-- ·©&Aring;· &Aring;×&Agrave;&Igrave;&ordm;&iacute;µµ &Atilde;&Ecirc;±â&Egrave;*&Ccedil;&Iuml;&Agrave;&Uacute;.
    
UPDATE _TrainingCampHonorRank SET CampID nullRank 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 <> OR @@ROWCOUNT 0)
        
BEGIN
            ROLLBACK TRANSACTION
            CLOSE RankCursor
            DEALLOCATE RankCursor

            
RETURN -2
        END
        UPDATE _TrainingCampHonorRank SET CampID 
= @CampIDRank = @Rank WHERE Ranking = @Ranking    
        
IF (@@ERROR <> 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

    
-- ¸¶&Aacute;&ouml;¸·&Agrave;¸·&Icirc°»½&Aring;&Ccedil;&Ntilde³¯&Acirc;¥¸¦ &Agrave;û¾î&ordm;¸&Agrave;&Uacute;!!!
    IF 
EXISTS (SELECT LastUpdateDate FROM _TrainingCampHonorRankUpdateDate)
    
BEGIN
        UPDATE _TrainingCampHonorRankUpdateDate SET LastUpdateDate 
GETDATE()
    
END
    
ELSE
    
BEGIN
        INSERT INTO _TrainingCampHonorRankUpdateDate VALUES 
(GETDATE())
    
END

    
IF (@@ERROR <> OR @@ROWCOUNT 0)
    
BEGIN
        ROLLBACK TRANSACTION
        
RETURN -4
    END

COMMIT TRANSACTION

    SET NOCOUNT OFF

    
RETURN