knightonline/server/shared/database/ItemMiningSet.h

51 lines
1.3 KiB
C++

#pragma once
class CItemMiningSet : public OdbcRecordset
{
public:
CItemMiningSet(OdbcConnection * dbConnection, ItemMiningArray *pMap)
: OdbcRecordset(dbConnection), m_pMap(pMap) {}
virtual tstring GetTableName() { return _T("ITEM_MINING"); }
virtual tstring GetColumns()
{
return _T("nIndex, ExchangeItemNum, ExchangeRate, isGoldenMattock");
}
virtual bool Fetch()
{
_MINING_ITEM *pData = new _MINING_ITEM;
int i = 1;
_dbCommand->FetchUInt32(i++, pData->nMiningID);
_dbCommand->FetchUInt32(i++, pData->nExchangeItemNum);
_dbCommand->FetchUInt16(i++, pData->sExchangeItemRate);
_dbCommand->FetchUInt16(i++, pData->isGoldenMattock);
if (pData->isGoldenMattock == 0)
{
for(int ad=0; ad < pData->sExchangeItemRate; ad++)
{
g_pMain->bRandArrayNormalMattock[g_pMain->TotalMiningExchangeRate + ad] = pData->nExchangeItemNum;
}
g_pMain->TotalMiningExchangeRate += pData->sExchangeItemRate;
}
else
{
for(int ad=0; ad < pData->sExchangeItemRate; ad++)
{
g_pMain->bRandArrayGoldenMattock[g_pMain->TotalGoldenMiningExchangeRate + ad] = pData->nExchangeItemNum;
}
g_pMain->TotalGoldenMiningExchangeRate += pData->sExchangeItemRate;
}
if (!m_pMap->PutData(pData->nMiningID, pData))
delete pData;
return true;
}
ItemMiningArray * m_pMap;
};