WepMasteR 3.Seviye Üye
Cinsiyet : Nerden : İzmir Yaş : 35 Mesaj Sayısı : 56 Başarı : 57000 Rep Gücü : 0
| Konu: Süreli GM Sistemi 20/9/2010, 17:28 | |
| Umarım İhtiyacı Olan Arkadaşların İşini Görür,
Prosedürün Özelliklerini Maddelendirirsek ; 1. İstediğiniz Kadar Günlük GM Verebilirsin 1,20,30,50,100 vb. 2. LOAD_USER_DATA da Olmadığı İçin Sürekli SQL Servera Procedur Göndermez ve Transcation Log(LDF) Dosyanızda Dolayısıyla Şişmez yine Buna Bağlı Olarak SQL Serverınız Yorulmaz ve Kaynak Kullanımları Artmaz. 3. CHECK_DAYS_GMS i Sadece Günde 1 Kere Çalıştırmanız Yeterli isteğe Göre 2 de Yapabilirsiniz Size Kalmış Birşey... USERDATA Tablomuzu Değiştiriyoruz... - Kod:
-
ALTER TABLE USERDATA ADD GM_CreatedDate smalldatetime NOT NULL DEFAULT 0; ALTER TABLE USERDATA ADD GM_Day tinyint NOT NULL DEFAULT 0;
- Kod:
-
CREATE PROCEDURE CHECK_DAY_GMS AS /* Author : AKUMA */ BEGIN TRAN DECLARE @strUserID char(21),@GM_CreatedDate smalldatetime,@GM_Day tinyint DECLARE USERDATA CURSOR FOR SELECT strUserID,GM_CreatedDate,GM_Day FROM USERDATA WHERE Authority = 0 OPEN USERDATA FETCH NEXT FROM USERDATA INTO @strUserID,@GM_CreatedDate,@GM_Day WHILE (@@FETCH_STATUS = 0) BEGIN DECLARE @Calc_Date smalldatetime SET @Calc_Date = DATEDIFF(dd,@GM_CreatedDate,GetDate()) IF @Calc_Date >= @GM_Day BEGIN UPDATE USERDATA SET Authority = 1 WHERE strUserID = @strUserID END FETCH NEXT FROM USERDATA INTO @strUserID,@GM_CreatedDate,@GM_Day END CLOSE USERDATA DEALLOCATE USERDATA COMMIT TRAN
- Kod:
-
CREATE PROCEDURE INSERT_GM_DAY ( @strUserID char(21), @Day tinyint ) AS /* Author : AKUMA */ BEGIN TRAN DECLARE @CheckUserID tinyint SELECT @CheckUserID = COUNT(strUserID) FROM USERDATA WHERE strUserID = @strUserID IF @CheckUserID <> 0 BEGIN UPDATE USERDATA SET GM_CreatedDate = GetDate(),GM_Day = @Day,Authority = 0 WHERE strUserID = @strUserID PRINT RTRIM(LTRIM(@strUserID)) + ' Karakterine ' + RTRIM(LTRIM(STR(@Day))) + ' Günlük GM''lik Verildi.' END ELSE BEGIN PRINT RTRIM(LTRIM(@strUserID)) + ' Karakteri Veritabaninda Bulunamadi.' END COMMIT TRAN
- Kod:
-
KULLANIM : EXEC INSERT_GM_DAY 'NICK','KACGUN' ÖRNEK : EXEC INSERT_GM_DAY 'WepMasteR','32'
- Kod:
-
EXEC CHECK_DAY_GMS
| |
|