knightonline/server/shared/database/MakeItemGroupSet.h

33 lines
1.1 KiB
C++

#pragma once
class CMakeItemGroupSet : public OdbcRecordset
{
public:
CMakeItemGroupSet(OdbcConnection * dbConnection, MakeItemGroupArray * pMap)
: OdbcRecordset(dbConnection), m_pMap(pMap) {}
virtual tstring GetTableName() { return _T("MAKE_ITEM_GROUP"); }
virtual tstring GetColumns() { return _T("iItemGroupNum, iItem_1, iItem_2, iItem_3, iItem_4, iItem_5, iItem_6, iItem_7, iItem_8, iItem_9, iItem_10, iItem_11, iItem_12, iItem_13, iItem_14, iItem_15, iItem_16, iItem_17, iItem_18, iItem_19, iItem_20, iItem_21, iItem_22, iItem_23, iItem_24, iItem_25, iItem_26, iItem_27, iItem_28, iItem_29, iItem_30"); }
virtual bool Fetch()
{
_MAKE_ITEM_GROUP *pData = new _MAKE_ITEM_GROUP;
_dbCommand->FetchUInt32(1, pData->iItemGroupNum);
for (int i = 1; i <= 30; i++)
{
uint32 iItem;
_dbCommand->FetchUInt32(i + 1, iItem);
// Insert regardless of whether it's set or not. This is official behaviour.
pData->iItems.push_back(iItem);
}
if (!m_pMap->PutData(pData->iItemGroupNum, pData))
delete pData;
return true;
}
MakeItemGroupArray *m_pMap;
};