Genel Araştırma
'premi̇um' etiketi için arama sonuçları.
Araştırmada 31 sonuç bulundu
-
premium özelliklerine bos ve adam kesince % 100 np vermesini ayarlıyabiliyor muyuz yani np premium yapılabiliyor mu
-
PREMİUM İTEMİ GİDİYOR HEDİYE İTEMLERİNİ VERİYOR ANÇAK PREMİUM AKTİF OLMUYOR RELOG ATIYORUM YİNEDE DÜZELMİYOR PROSDR USE [kn_online] GO /****** Object: StoredProcedure [dbo].[ACCOUNT_LOGIN] Script Date: 8.11.2017 18:19:16 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO ALTER PROCEDURE [dbo].[ACCOUNT_LOGIN] @AccountID varchar(21), @Password varchar(13), @nRet smallint OUTPUT AS DECLARE @Nation tinyint, @CharNum smallint SET @Nation = 0 SET @CharNum = 0 DECLARE @pwd varchar(13) SET @pwd = null SELECT @pwd = strPasswd FROM [dbo].[TB_USER] WHERE strAccountID = @AccountID IF @pwd IS null BEGIN SET @nRet = 0 RETURN END ELSE IF @pwd @Password BEGIN SET @nRet = 0 RETURN END SELECT @Nation = bNation, @CharNum = bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID IF @@ROWCOUNT = 0 BEGIN SET @nRet = 1 RETURN END IF @CharNum = 0 BEGIN SET @nRet = 1 RETURN END ELSE BEGIN SET @nRet = @Nation+1 RETURN END USE [kn_online] GO /****** Object: StoredProcedure [dbo].[UPDATE_PREMIUM_SERVICE_USER] Script Date: 8.11.2017 18:22:30 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[UPDATE_PREMIUM_SERVICE_USER] @AccountID varchar(27), @Days smallint AS SET NOCOUNT ON; if @Days = 0 BEGIN --UPDATE PREMIUM_SERVICE SET nDays = @Days WHERE strAccountID = @AccountID DELETE FROM PREMIUM_SERVICE where strAccountID = @AccountID END USE [kn_online] GO /****** Object: StoredProcedure [dbo].[GIVE_Premium] Script Date: 8.11.2017 18:20:33 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[GIVE_Premium] @day int OUTPUT, @control int, @id varchar(21) AS if @control in (1,2,3) if @control = 1 begin UPDATE TB_USER SET PREMIUMDAYS = GETDATE()+30, PREMIUMTYPE = 1 WHERE strAccountID = @id END if @control = 2 begin UPDATE TB_USER SET PREMIUMDAYS = GETDATE()+30, PREMIUMTYPE = 3 WHERE strAccountID = @id END if @control = 3 begin UPDATE TB_USER SET PREMIUMDAYS = GETDATE()+30, PREMIUMTYPE = 5 WHERE strAccountID = @id END USE [kn_online] GO /****** Object: StoredProcedure [dbo].[ADD_PREM_USER] Script Date: 8.11.2017 18:19:57 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[ADD_PREM_USER] @AccountID varchar(27), @nType smallint, @nDays smallint AS declare @ID varchar(27) SELECT @ID = count(strAccountID) FROM PREMIUM_SERVICE where strAccountID = @AccountID IF @ID = 0 BEGIN print @AccountID +' kullanıcısının aktif bir premium uyeligi yok' print @AccountID +' kullanıcısına premium ekleniyor' INSERT INTO PREMIUM_SERVICE VALUES (@AccountID,@nType,@nDays,GETDATE()) print @AccountID +' kullanıcısına '+ convert(varchar,@nType) +' olarak' + convert(varchar,@nDays) + 'gün eklendi' RETURN END BEGIN print @AccountID +' kullanıcısının aktif bir premium uyeligi var' print @AccountID +' kullanıcısının premium üyeliği değişiyor' update PREMIUM_SERVICE set ndays = @ndays,strType=@nType where strAccountID = @AccountID print @AccountID +' kullanıcısına '+ convert(varchar,@nType) +' olarak' + convert(varchar,@nDays) + 'gün olarak değişti' RETURN END
-
Merhabalar. DB'ye switch premium eklemek istiyorum. İtem kodu gerekli. Yardımcı olan herkese şimdiden teşekkürler.
-
CREATE PROCEDURE [dbo].[SAVE_PREMIUM_SERVICE_USER] @strAccountID char(20), @strCharID char(20), @bType tinyint, @sTime smallint AS DECLARE @dtExpiry datetime SET @dtExpiry = DATEADD(HH, @sTime, GETDATE()) UPDATE TB_USER SET bPremiumType = @bType, dtPremiumTime = @dtExpiry, sHours = @sTime WHERE strAccountID = @strAccountID GO ----------- bunları yazdığımda Msg 137, Level 15, State 2, Line 11 Must declare the scalar variable "@bType". bu hatayı alıyorum yardımcı olurmusunuz
- 16 yanıt
-
- prosedürde
- hata
-
(1 tane daha)
İle Etiketeklendi:
-
Merhaba.. Sql 2014 Procedure den çeviremedim. ancak yapamadım. LOAD_PREMIUM_SERVICE_USER bool CDBAgent::LoadPremiumServiceUser(string & strAccountID, CUser *pUser) { if (pUser == nullptr) return false; unique_ptr dbCommand(m_AccountDB->CreateCommand()); if (dbCommand.get() == nullptr) return false; dbCommand->AddParameter(SQL_PARAM_INPUT, strAccountID.c_str(), strAccountID.length()); if (!dbCommand->Execute(_T("{CALL LOAD_PREMIUM_SERVICE_USER(?)}"))) { ReportSQLError(m_AccountDB->GetError()); return false; } if (!dbCommand->hasData()) return false; char strPremium[30]; memset(strPremium, 0, sizeof(strPremium)); uint8 bPremiumCount = 0; dbCommand->FetchByte(1, pUser->m_bPremiumInUse); dbCommand->FetchByte(2, bPremiumCount); dbCommand->FetchBinary(3, strPremium, sizeof(strPremium)); for (int i = 0, index = 0; i < bPremiumCount; i++, index += 5) { uint8 bPremiumType = *(uint8*)(strPremium + index); uint32 iPremiumTime = *(uint32*)(strPremium + index + 1); if (iPremiumTime < UNIXTIME) continue; _PREMIUM_DATA *pPremium = new _PREMIUM_DATA; pPremium->bPremiumType = bPremiumType; pPremium->iPremiumTime = iPremiumTime; if (!pUser->m_PremiumMap.PutData(bPremiumType, pPremium)) delete pPremium; } if (pUser->m_PremiumMap.GetSize() == 0) { _PREMIUM_DATA *pPremium = new _PREMIUM_DATA; pPremium->bPremiumType = PremiumTypes::Dummy_Premium; pPremium->iPremiumTime = uint32(UNIXTIME) + 24 * 60 * 60 * 2; if (!pUser->m_PremiumMap.PutData(pPremium->bPremiumType, pPremium)) delete pPremium; else pUser->m_bPremiumInUse = PremiumTypes::Dummy_Premium; } else { if (pUser->m_PremiumMap.GetData(pUser->m_bPremiumInUse) == nullptr) { pUser->m_bPremiumInUse = NO_PREMIUM; foreach_stlmap(itr, pUser->m_PremiumMap) { _PREMIUM_DATA * uPrem = itr->second; if (uPrem == nullptr || uPrem->iPremiumTime == 0) continue; pUser->m_bPremiumInUse = uPrem->bPremiumType; break; } } } // this is hardcoded because we don't really care about the other mode if (pUser->m_bPremiumInUse != NO_PREMIUM) pUser->m_bAccountStatus = 1; // normal premium with expiry time else pUser->m_bAccountStatus = 0; return true; } SAVE_PREMIUM_SERVICE_USER bool CDBAgent::SavePremiumServiceUser(CUser *pUser) { if (pUser == nullptr) return false; unique_ptr dbCommand(m_AccountDB->CreateCommand()); if (dbCommand.get() == nullptr) return false; int8 bRet = -2; // generic error char strPremium[30]; int index = 0; memset(strPremium, 0, sizeof(strPremium)); int counter = 0; uint32 time = 0; foreach_stlmap(itr, pUser->m_PremiumMap) { if (itr->second == nullptr || itr->second->iPremiumTime < UNIXTIME || itr->second->bPremiumType == PremiumTypes::Dummy_Premium) continue; if (time < itr->second->iPremiumTime) time = itr->second->iPremiumTime; *(uint8 *)(strPremium + index) = itr->first; *(uint32 *)(strPremium + 1 + index) = itr->second->iPremiumTime; index += 5; counter++; } if (time > uint32(UNIXTIME)) time = uint32(time - UNIXTIME); // total premium seconds left dbCommand->AddParameter(SQL_PARAM_OUTPUT, &bRet); dbCommand->AddParameter(SQL_PARAM_INPUT, pUser->GetAccountName().c_str(), pUser->GetAccountName().length()); dbCommand->AddParameter(SQL_PARAM_INPUT, (char *)strPremium, sizeof(strPremium), SQL_BINARY); if (!dbCommand->Execute(string_format(_T("{? = CALL SAVE_PREMIUM_SERVICE_USER(?, ?, %d, %d, %d)}"), counter, pUser->m_bPremiumInUse == PremiumTypes::Dummy_Premium ? 0 : pUser->m_bPremiumInUse, time))) ReportSQLError(m_AccountDB->GetError()); return true; }
-
Merhaba arkadaşlar soacs'de npc'den premium kontrolü nasıl yaptırabiliriz mantıgını bilen veya yardımcı olabilecek arkadaş varsa çok sevinirim, benim aklıma gelen ilk şey prosedürle yapmak oldu fakat bi mantıgını gösterebilecek olursa çok sevinirim