الموضوع: مشكله فى Honor Buff
عرض مشاركة واحدة
قديم 04-05-2013, 04:21 AM   #10

Sherio_3x
عضو فعال



الصورة الرمزية Sherio_3x

مـشـرف تـحـت الإخـتـبـار

• الانـتـسـاب » Jul 2008
• رقـم العـضـويـة » 25487
• المشـــاركـات » 356
• الـدولـة »
• الـهـوايـة »
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 15
Sherio_3x صـاعـد

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



افتراضي



اخيرراااااااااا تم حل المشكله بس بطريقه غريبه جدا و انا مكنتش متخيل انها هاتتحل كده

بص اللى حصل انى لاحظن ان الكويرى ده
كود:
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

    -- ÀÏ´Ü ·©Å· Å×À̺íÀ» ¼¼ÆÃÇÑ´Ù.
    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

    -- ·©&Aring;· &Aring;×&Agrave;&Igrave;&ordm;&iacute;µµ &Atilde;&Ecirc;±â&Egrave;*&Ccedil;&Iuml;&Agrave;&Uacute;.
    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

    -- ¸¶&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 <> 0 OR @@ROWCOUNT = 0)
    BEGIN
        ROLLBACK TRANSACTION
        RETURN -4
    END

COMMIT TRANSACTION

    SET NOCOUNT OFF

    RETURN 1
مكتوب فيه
كود:
WHERE EvaluationPoint >= 10
روحت عامل زى اللى فى الصوره دى



و لاقيت ال Buff اشتغل لوحده و الحمد لله

ياريت لو قدرت توصل لحاجه قولى علشان انا عايز افهم ايه اللى حصل ده

و كمان فى ناس كتيير محتاجه الموضوع ده

شكرا على المساعده


توقيع Sherio_3x :

-------------------------------------------


عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]


-------------------------------------------


[ وَإِنَّمَا الأُمَمُ الأَخْلاقُ مَا بَقِيَتْ .. فَإِنْ هُمُ ذَهَبَتْ أَخْلاقُهُمْ ذَهَبُوا ]



-------------------------------------------

عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]

********************