knightonline/server/shared/database/CypherTableSet.h

40 lines
1010 B
C++

#pragma once
class CCypherTableSet : public OdbcRecordset
{
public:
CCypherTableSet(OdbcConnection * dbConnection, CypherRingArray *pMap)
: OdbcRecordset(dbConnection), m_pMap(pMap) {}
virtual tstring GetTableName() { return _T("USERDATA_CYPHER"); }
virtual tstring GetColumns()
{
return _T("id, strUserId, strSerial, sClass, bLevel, iExp, bRace");
}
virtual bool Fetch()
{
int i = 1;
_CYPHERRING_DATA * pData = new _CYPHERRING_DATA;
_dbCommand->FetchUInt32(i++, pData->ID);
_dbCommand->FetchString(i++, pData->UserName);
_dbCommand->FetchUInt64(i++, pData->m_Serial);
_dbCommand->FetchByte(i++, pData->sClass);
_dbCommand->FetchByte(i++, pData->bLevel);
_dbCommand->FetchUInt64(i++, pData->iExp);
_dbCommand->FetchUInt16(i++, pData->bRace);
if (pData->ID > g_pMain->LastPetID)
g_pMain->LastPetID = pData->ID;
if (pData == nullptr)
delete pData;
else
m_pMap->insert(std::make_pair(pData->m_Serial, pData));
return true;
}
CypherRingArray * m_pMap;
};