1.oLarak UyguLayacanız Kod (Quary Anazlyzer'e UyguLuyorsunuz ArkadasLar.)
CREATE TABLE [dbo].[NP_BAGIS_LOG]
[Karakter ADI] [char] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Clan ADI] [smallint] NULL ,
[Bagisladigi Miktar] [char] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
2.oLarak UyguLayacanız Kod(Quary Anazlyzer'e UyguLuyorsunuz ArkadasLar.)
CREATE PROCEDURE [dbo].[NP_BAGIS]
@strUserID char(21), @nDonation int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @nConnected tinyint, @nKnight int, @nUser tinyint, @nLoyalty int, @strClanName char
SELECT @nLoyalty = Loyalty, @nUser = COUNT(*), @nKnight = Knights FROM USERDATA WHERE strUserId = @strUserID GROUP BY Loyalty, Knights
IF (@nUser = 1)
BEGIN
SELECT @nConnected = COUNT(*) FROM CURRENTUSER WHERE strCharID = @strUserID
IF (@nConnected = 0)
BEGIN
IF (@nKnight > 0)
BEGIN
IF (@nLoyalty > @nDonation)
BEGIN
UPDATE KNIGHTS SET Points = (Points + @nDonation) WHERE IDNum = @nKnight
UPDATE USERDATA SET Loyalty = (Loyalty - @nDonation) WHERE strUserId = @strUserID
INSERT INTO NP_BAGIS_LOG VALUES(@strUserID, @nKnight, @nDonation)
PRINT RTRIM(LTRIM(@strUserID)) + ' İsimli Karakter ' + RTRIM(LTRIM(@nKnight)) + ' Adlı Clana ' + RTRIM(LTRIM(@nDonation)) + ' Np Bağişlamiştir'
END
ELSE
BEGIN
PRINT RTRIM(LTRIM(@strUserID)) + ' Adlı Karakterin Bağiş İçin Belirlenenden Daha AZ NPsi Bulunmaktadir.'
END
END
ELSE
BEGIN
PRINT RTRIM(LTRIM(@strUserID)) + ' Clana Üye Olmadıgı İçin Bağiş Yapamamaktadır'
END
END
ELSE
BEGIN
PRINT RTRIM(LTRIM(@strUserID)) + ' Adlı Karakter Oyunda Oldugu İçin İşlem Yapilmamaktadir'
END
END
ELSE
BEGIN
PRINT RTRIM(LTRIM(@strUserID)) + ' Karakter Bulunamadı'
END
END
GO
exec np_bagis'Karakter ADI','Bağışlamak İstedigi Miktar'
CREATE TABLE [dbo].[NP_BAGIS_LOG]
[Karakter ADI] [char] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Clan ADI] [smallint] NULL ,
[Bagisladigi Miktar] [char] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
2.oLarak UyguLayacanız Kod(Quary Anazlyzer'e UyguLuyorsunuz ArkadasLar.)
CREATE PROCEDURE [dbo].[NP_BAGIS]
@strUserID char(21), @nDonation int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @nConnected tinyint, @nKnight int, @nUser tinyint, @nLoyalty int, @strClanName char
SELECT @nLoyalty = Loyalty, @nUser = COUNT(*), @nKnight = Knights FROM USERDATA WHERE strUserId = @strUserID GROUP BY Loyalty, Knights
IF (@nUser = 1)
BEGIN
SELECT @nConnected = COUNT(*) FROM CURRENTUSER WHERE strCharID = @strUserID
IF (@nConnected = 0)
BEGIN
IF (@nKnight > 0)
BEGIN
IF (@nLoyalty > @nDonation)
BEGIN
UPDATE KNIGHTS SET Points = (Points + @nDonation) WHERE IDNum = @nKnight
UPDATE USERDATA SET Loyalty = (Loyalty - @nDonation) WHERE strUserId = @strUserID
INSERT INTO NP_BAGIS_LOG VALUES(@strUserID, @nKnight, @nDonation)
PRINT RTRIM(LTRIM(@strUserID)) + ' İsimli Karakter ' + RTRIM(LTRIM(@nKnight)) + ' Adlı Clana ' + RTRIM(LTRIM(@nDonation)) + ' Np Bağişlamiştir'
END
ELSE
BEGIN
PRINT RTRIM(LTRIM(@strUserID)) + ' Adlı Karakterin Bağiş İçin Belirlenenden Daha AZ NPsi Bulunmaktadir.'
END
END
ELSE
BEGIN
PRINT RTRIM(LTRIM(@strUserID)) + ' Clana Üye Olmadıgı İçin Bağiş Yapamamaktadır'
END
END
ELSE
BEGIN
PRINT RTRIM(LTRIM(@strUserID)) + ' Adlı Karakter Oyunda Oldugu İçin İşlem Yapilmamaktadir'
END
END
ELSE
BEGIN
PRINT RTRIM(LTRIM(@strUserID)) + ' Karakter Bulunamadı'
END
END
GO
exec np_bagis'Karakter ADI','Bağışlamak İstedigi Miktar'