عرض مشاركة واحدة
قديم 21-04-2016, 08:48 AM   #9

Storxy*
عضو جديد



الصورة الرمزية Storxy*


• الانـتـسـاب » Mar 2015
• رقـم العـضـويـة » 121135
• المشـــاركـات » 47
• الـدولـة » Alexandria
• الـهـوايـة » SQL Coding
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 10
Storxy* صـاعـد

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



افتراضي



اقتباس:
المشاركة الأصلية كتبت بواسطة HLP عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]


انا عامل سيستم ده من زمان اول لما كونت لسه بتعلم بس معنديش وقت اني اعيد صياغة برسيدور
علي فكرة انا ممكن اعملك برسيدور في كام سطر بطريقة ممتازة اتفضل
كود PHP:
USE [SRO_VT_SHARDLOG]
GO
/****** Object:  StoredProcedure [dbo].[_NewChangeSystem]    Script Date: 21/04/2016 06:22:45 ص ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure 
[dbo].[_NewChangeSystem]
  @
Charid  int,
  @
Operation tinyint,
  @
ItemRefid int 
AS
 DECLARE @
IID int
        
,@RefID int
        
,@InvID int
        
,@Type varchar(50) = NULL
        
,@ID int
        
,@ID1 int
        
,@NID int 
        
,@Gender varchar(8)
        ,@
DG varchar(50)
        ,@
ItemID int 
        
, @Slot int 
         set 
@Slot '6'
IF @ItemRefID '42099'
set @Type ='Sword'
IF @ItemRefID '42100'
set @Type ='blade'
IF @ItemRefID '42101'
set @Type ='Spear'
IF @ItemRefID '42102'
set @Type ='TBALDE'
IF @ItemRefID '42103'
set @Type ='Bow'
IF @ItemRefID '42107'
Set @Type 'Dagger'
IF @ItemRefID '42108'
Set @Type 'Xbow'
IF @ItemRefID '42109'
Set @Type 'Axe'
IF @ItemRefID '42110'
Set @Type '1Hand'
IF @ItemRefID '42111'
Set @Type '2Hand'
IF @ItemRefID '42112'
Set @Type 'Tstaff'
IF @ItemRefID '42113'
Set @Type 'Staff'
IF @ItemRefID '42114'
Set @Type 'DarkStaff'
IF @ItemRefID '42115'
Set @Type 'harp'


            
SELECT @ItemID=I.ID64 , @RefID I.RefItemID 
            FROM SRO_VT_SHARD
.dbo._Items I INNER JOIN SRO_Vt_SHARD.dbo._Inventory Iv
            ON I
.ID64 Iv.ItemID
            WHERE Iv
.Slot = @Slot AND Iv.CharID = @CharID

            select 
@ID ID ,@DG DG , @Gender =  Gender 
            FROM SRO_VT_SHARDLOG
.dbo._SystemChangeByHLP
            WITH
(NOLOCKwhere ID = @RefID

            Select 
@NID ID 
            FROM SRO_VT_SHARDLOG
.dbo._SystemChangeByHLP  
            WITH
(NOLOCKWHERE  
            TYPE 
= @Type
             
and Gender = @Gender 
             
AND DG = @DG



                                                                      
IF (@ItemRefID Between 42099 and  42103 ) and (@Operation 41
Begin
 
IF @RefID =@ID 
begin
 Update SRO_VT_SHARD
.._Items Set RefItemID=@NID,CreaterName='HLP' Where ID64 = @ItemID
END
end 
شكرا علي رايك
انا زى مقولتلك انا مبقولكش كدة تقليل منك ولا حاجة انا عندى اعتراف بان كل واحد بيبقى بكرة احسن انا نفسى كنت كدة عادى وهفضل كدة يعنى مستوايا انهاردة عمره مهيكون نفس مستوايا كمان سنة مثلا وانك مثلا تنزل بروسيدر زى ده وانت عارف اد ايه هو فيه عك سعتها انت هتكون بتدور نفسك لان مثلا المبتداء فى ال SQL هيقولك عشان طلاما السيستم شغال لاكن الفاهم ياما يرد وينتقدك وممكن الطريقة متعجبكش يا اما هياخد فكرة عنك وحشة فمتدقش من انى انتقدتك ونصيحة اخيرة هو انا مقرتش البروديسر بالنفصيل بس بدل ما تشتغل ب IF @XXXX SET @XXXX=كذااا اشتغلها ب WHEN و THEN احسن تقبل مرورى وسواء خدت بالنصيحة او لا حاجة ترجعلك وتحترم على ردك وحاول تهتم بال Performance على قد متقدر لان مش صعب انك تعمل سيستم او كدة لحد فاهم قد م صعب انك تعمله ب Performance عالية


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

التعديل الأخير تم بواسطة Storxy* ; 21-04-2016 الساعة 08:50 AM

رد مع اقتباس