[VIP] DB Kayıt Edilmiyor

'ÇÖZÜLEN KONULAR' forumunda ABZ tarafından 6 Kasım 2016 tarihinde açılan konu

Konu Durumu:
Yanıtlara kapalı.
  1. ABZ

    ABZ
    Kayıtlı Üye

    Katılım:
    10 Temmuz 2016
    Mesaj:
    63
    Beğeniler:
    0
    Ödül Puanları:
    6
    Merhabalar arkadaşlar loadwarhousevip dbagent ekledikledikten sonra okuması için reqselect kısmını ekliyorum fakat ne bir hata nede başka bir durum söz konusu şuan için çevremde yardım edecek kimse yok bir akıl verirseniz sevinirim Db kayıt etmiyor sqlde de odbc error tarzı bir hata yazısıda yok



    bu tableye eklendiğim kısım



    Kod:
    [strAccountID] [char](21) NOT NULL,
    
    	[VipPass] [smallint] NOT NULL CONSTRAINT [DF_WAREHOUSE_VIP_VipPass]  DEFAULT ((0)),
    
    	[VipData] [binary](384) NULL,
    
    	[VipSerial] [binary](384) NULL,
    
    	[ViDataEx] [binary](192) NULL,
    
    	[vExpiration] [int] NOT NULL




    bu kısım

    Kod:
    bool CDBAgent::LoadWarehouseDataVip(string & strAccountID, CUser *pUser)
    
    {     
    
               //Kısımlar
    
    	char VipItem[VIP_HAVE_MAX * 8], VipItemEx[VIP_HAVE_MAX * 4], VipSerial[VIP_HAVE_MAX * 8];
    
    //okuma
    
    	unique_ptr<OdbcCommand> dbCommand(m_GameDB->CreateCommand());
    
    	if (dbCommand.get() == nullptr)
    
    		return false;
    
    //check
    
    	if (pUser == nullptr 
    
    		|| pUser->m_bLogout)
    
    		return false;
    
    
    
    	dbCommand->AddParameter(SQL_PARAM_INPUT, strAccountID.c_str(), strAccountID.length());
    
    
    
    	if (!dbCommand->Execute(_T("SELECT VipPass, VipData, VipSerial, ViDataEx, vExpiration FROM WAREHOUSE_VIP WHERE strAccountID = ?")))
    
    		ReportSQLError(m_GameDB->GetError());//hata mesajı
    
    
    
    	if (!dbCommand->hasData())
    
    		return false;
    
    //cloms load
    
    	memset(VipItem, 0x00, sizeof(VipItem));
    
    	memset(VipItemEx, 0x00, sizeof(VipItemEx));
    
    	memset(VipSerial, 0x00, sizeof(VipSerial));
    
    
    
    	dbCommand->FetchUInt16(1, pUser->m_VipPass);
    
    	dbCommand->FetchBinary(2, VipItem, sizeof(VipItem));
    
    	dbCommand->FetchBinary(3, VipSerial, sizeof(VipSerial));
    
    	dbCommand->FetchBinary(4, VipItemEx, sizeof(VipItemEx));
    
    	dbCommand->FetchUInt32(5, pUser->m_VipKeyTime);
    
    
    
    	ByteBuffer VitemBuffer, VserialBuffer, VitemExBuffer;
    
    	VitemBuffer.append(VipItem, sizeof(VipItem));
    
    	VserialBuffer.append(VipItemEx, sizeof(VipItemEx));
    
    	VitemExBuffer.append(VipSerial, sizeof(VipSerial));
    
    
    
    	memset(pUser->m_sVIPhouseArray, 0x00, sizeof(pUser->m_sVIPhouseArray));
    
    
    
    	for (int i = 0; i < VIP_HAVE_MAX; i++) 
    
    	{
    
    		uint64 nSerialNum;
    
    		uint32 nItemID, nItemEx;
    
    		int16 sDurability, sCount;
    
    
    
    		VitemBuffer >> nItemID >> sDurability >> sCount;
    
    		VserialBuffer >> nSerialNum;
    
    		VitemExBuffer >> nItemEx;
    
    
    
    		_ITEM_TABLE *pTable = g_pMain->GetItemPtr(nItemID);
    
    		if (pTable == nullptr || sCount <= 0)
    
    			continue;
    
    
    
    		if (!pTable->m_bCountable && sCount > 1)
    
    			sCount = 1;
    
    		else if (sCount > ITEMCOUNT_MAX)
    
    			sCount = ITEMCOUNT_MAX;
    
    
    
    		pUser->m_sVIPhouseArray.nNum = nItemID;
    
    		pUser->m_sVIPhouseArray.sDuration = sDurability;
    
    		pUser->m_sVIPhouseArray.sCount = sCount;
    
    		pUser->m_sVIPhouseArray.nSerialNum = nSerialNum;
    
    		pUser->m_sVIPhouseArray.nExpirationTime = nItemEx;
    
    
    
    		UserItemSealMap::iterator sealitr = pUser->m_sealedItemMap.find(nSerialNum);
    
    		if (sealitr != pUser->m_sealedItemMap.end())
    
    		{
    
    			if (sealitr->second->bSealType == 1)
    
    				pUser->m_sVIPhouseArray.bFlag = ITEM_FLAG_SEALED;
    
    			else if (sealitr->second->bSealType == 3)
    
    				pUser->m_sVIPhouseArray.bFlag = ITEM_FLAG_BOUND;
    
    		}
    
    
    
    		g_pMain->AddUserItem(nItemID, nSerialNum);
    
    
    
    		if (g_pMain->IsDuplicateItem(nItemID,nSerialNum))
    
    			pUser->m_sVIPhouseArray.bFlag = ITEM_FLAG_DUPLICATE;
    
    
    
    		if (pTable->m_Bound == 1)
    
    		{
    
    			if (pUser->m_sVIPhouseArray.bFlag == ITEM_FLAG_NONE)
    
    				pUser->m_sVIPhouseArray.bFlag = ITEM_FLAG_NOT_BOUND;
    
    		}
    
    	}
    
    
    
    	return true;
    
    }
     
  2. YNG

    YNG

    Katılım:
    14 Nisan 2012
    Mesaj:
    1,610
    Beğeniler:
    0
    Ödül Puanları:
    36
    Cevap: [VIP] DB Kayıt Edilmiyor



    Tablodaki vipdateex vidateex olarak degis
     
Konu Durumu:
Yanıtlara kapalı.

Bu Sayfayı Paylaş