knightonline/server/shared/database/ItemMixSet.h

60 lines
2.1 KiB
C++

#pragma once
class CItemMixSet : public OdbcRecordset
{
public:
CItemMixSet(OdbcConnection * dbConnection, ItemMixArray *pMap)
: OdbcRecordset(dbConnection), m_pMap(pMap) {}
virtual tstring GetTableName() { return _T("ITEM_MIX"); }
virtual tstring GetColumns()
{
return _T("nIndex, nNpcID,bType,strName,bStatus,"
"nOriginItemNum1, nOriginItemCount1, nOriginItemNum2, nOriginItemCount2, "
"nOriginItemNum3, nOriginItemCount3, nOriginItemNum4, nOriginItemCount4, "
"nOriginItemNum5, nOriginItemCount5,nOriginItemNum6, nOriginItemCount6,nOriginItemNum7, nOriginItemCount7,"
"nOriginItemNum8, nOriginItemCount8,nOriginItemNum9, nOriginItemCount9,nOriginItemNum10, nOriginItemCount10,"
"sSuccessEffect,bSuccessRate,sFailEffect,bBonusRate,"
"nExchangeItemNum1, nExchangeItemCount1, nExchangeItemNum2, nExchangeItemCount2, nExchangeItemNum3, nExchangeItemCount3, "
"nExchangeItemNum4, nExchangeItemCount4, nExchangeItemNum5, nExchangeItemCount5, nExchangeItemNum6, nExchangeItemCount6,"
"nExchangeItemNum7, nExchangeItemCount7, nExchangeItemNum8, nExchangeItemCount8, nExchangeItemNum9, nExchangeItemCount9, nExchangeItemNum10, nExchangeItemCount10");
}
virtual bool Fetch()
{
_ITEM_MIX *pData = new _ITEM_MIX;
int i = 1;
_dbCommand->FetchUInt32(i++, pData->nIndex);
_dbCommand->FetchUInt16(i++, pData->sNpcNum);
_dbCommand->FetchByte(i++, pData->bType);
_dbCommand->FetchString(i++, pData->strName);
_dbCommand->FetchByte(i++, pData->bStatus);
for (int x = 0; x < ITEMS_IN_SPECIAL_ORIGIN_GROUP; x++)
{
_dbCommand->FetchUInt32(i++, pData->nOriginItemNum[x]);
_dbCommand->FetchUInt16(i++, pData->sOriginItemCount[x]);
}
_dbCommand->FetchUInt16(i++, pData->sSuccessEffect);
_dbCommand->FetchUInt16(i++, pData->bSuccessRate);
_dbCommand->FetchUInt16(i++, pData->sFailEffect);
_dbCommand->FetchUInt16(i++, pData->bBonusRate);
for (int j = 0; j < ITEMS_IN_SPECIAL_EXCHANGE_GROUP; j++)
{
_dbCommand->FetchUInt32(i++, pData->nExchangeItemNum[j]);
_dbCommand->FetchUInt16(i++, pData->sExchangeItemCount[j]);
}
if (!m_pMap->PutData(pData->nIndex, pData))
delete pData;
return true;
}
ItemMixArray *m_pMap;
};