#ifndef _RYL_DB_CHARACTER_PROCESS_COMMAND_H_ #define _RYL_DB_CHARACTER_PROCESS_COMMAND_H_ #include #include #include #include "RylDBCommand.h" namespace RylDBCommand { class CCharData : public IRylDBCommand { public: enum { MAX_COLUMN_NUM = 25, MAX_EQUIP_DATA = 30 }; CCharData() { Init(); } void Init(void); void LogError(DBErrorType eErrorType, HRESULT hr); unsigned long GetCID() const { return static_cast(m_CID); } const char* GetName() const { return m_Name; } unsigned char GetSex() const { return m_Sex; } unsigned char GetHair() const { return m_Hair; } unsigned char GetFace() const { return m_Face; } unsigned char GetRace() const { return m_Race; } short GetClass() const { return m_Class; } unsigned long GetFame() const { return static_cast(m_Fame); } unsigned long GetMileage() const { return static_cast(m_Mileage); } unsigned long GetGID() const { return static_cast(m_GID); } unsigned long GetPID() const { return static_cast(m_PID); } unsigned char GetLevel() const { return m_Level; } unsigned long GetGold() const { return static_cast(m_Gold); } short GetIP() const { return m_IP; } short GetSTR() const { return m_STR; } short GetDEX() const { return m_DEX; } short GetCON() const { return m_CON; } short GetINT() const { return m_INT; } short GetWIS() const { return m_WIS; } short GetHP() const { return m_HP; } short GetMP() const { return m_MP; } unsigned __int64 GetEXP() const { return m_Exp; } unsigned char GetChance() const { return m_Chance; } // CID´Â ¹Ù²Ü ¼ö ¾ø°í, À̸§Àº °¡±ÞÀû ¹Ù²ÙÁö ¾Ê´Â´Ù. void SetGold(unsigned long Gold) { m_Gold = Gold; m_GoldStatus = DBSTATUS_S_OK; } void SetFame(unsigned long Fame) { m_Fame = Fame; m_FameStatus = DBSTATUS_S_OK; } void SetMileage(unsigned long Mileage) { m_Mileage = Mileage; m_MileageStatus = DBSTATUS_S_OK; } bool operator == (const CCharData& rhs) const; bool operator != (const CCharData& rhs) const { return !(*this == rhs); } CString GetDBStatus(); BEGIN_ACCESSOR_MAP(CCharData, 2) BEGIN_ACCESSOR(0, true) COLUMN_ENTRY_STATUS(1, m_CID, m_CIDStatus) COLUMN_ENTRY_LENGTH_STATUS(2, m_Name, m_NameLen, m_NameStatus) COLUMN_ENTRY_STATUS(3, m_Sex, m_SexStatus) COLUMN_ENTRY_STATUS(4, m_Hair, m_HairStatus) COLUMN_ENTRY_STATUS(5, m_Face, m_FaceStatus) COLUMN_ENTRY_STATUS(6, m_Race, m_RaceStatus) COLUMN_ENTRY_STATUS(7, m_Class, m_ClassStatus) COLUMN_ENTRY_STATUS(8, m_Fame, m_FameStatus) COLUMN_ENTRY_STATUS(9, m_Mileage, m_MileageStatus) COLUMN_ENTRY_STATUS(10, m_GID, m_GIDStatus) COLUMN_ENTRY_STATUS(11, m_PID, m_PIDStatus) COLUMN_ENTRY_STATUS(12, m_Level, m_LevelStatus) COLUMN_ENTRY_LENGTH_STATUS(13, m_EquipData, m_EquipLen, m_EquipDataStatus) COLUMN_ENTRY_STATUS(14, m_Gold, m_GoldStatus) COLUMN_ENTRY_STATUS(15, m_IP, m_IPStatus) COLUMN_ENTRY_STATUS(16, m_STR, m_STRStatus) COLUMN_ENTRY_STATUS(17, m_DEX, m_DEXStatus) COLUMN_ENTRY_STATUS(18, m_CON, m_CONStatus) COLUMN_ENTRY_STATUS(19, m_INT, m_INTStatus) COLUMN_ENTRY_STATUS(20, m_WIS, m_WISStatus) COLUMN_ENTRY_STATUS(21, m_HP, m_HPStatus) COLUMN_ENTRY_STATUS(22, m_MP, m_MPStatus) COLUMN_ENTRY_STATUS(23, m_Exp, m_ExpStatus) COLUMN_ENTRY_STATUS(24, m_Chance, m_ChanceStatus) END_ACCESSOR() BEGIN_ACCESSOR(1, true) COLUMN_ENTRY_STATUS(3, m_Sex, m_SexStatus) COLUMN_ENTRY_STATUS(4, m_Hair, m_HairStatus) COLUMN_ENTRY_STATUS(5, m_Face, m_FaceStatus) COLUMN_ENTRY_STATUS(6, m_Race, m_RaceStatus) COLUMN_ENTRY_STATUS(7, m_Class, m_ClassStatus) COLUMN_ENTRY_STATUS(8, m_Fame, m_FameStatus) COLUMN_ENTRY_STATUS(9, m_Mileage, m_MileageStatus) COLUMN_ENTRY_STATUS(10, m_GID, m_GIDStatus) COLUMN_ENTRY_STATUS(11, m_PID, m_PIDStatus) COLUMN_ENTRY_STATUS(12, m_Level, m_LevelStatus) COLUMN_ENTRY_LENGTH_STATUS(13, m_EquipData, m_EquipLen, m_EquipDataStatus) COLUMN_ENTRY_STATUS(14, m_Gold, m_GoldStatus) COLUMN_ENTRY_STATUS(15, m_IP, m_IPStatus) COLUMN_ENTRY_STATUS(16, m_STR, m_STRStatus) COLUMN_ENTRY_STATUS(17, m_DEX, m_DEXStatus) COLUMN_ENTRY_STATUS(18, m_CON, m_CONStatus) COLUMN_ENTRY_STATUS(19, m_INT, m_INTStatus) COLUMN_ENTRY_STATUS(20, m_WIS, m_WISStatus) COLUMN_ENTRY_STATUS(21, m_HP, m_HPStatus) COLUMN_ENTRY_STATUS(22, m_MP, m_MPStatus) COLUMN_ENTRY_STATUS(23, m_Exp, m_ExpStatus) COLUMN_ENTRY_STATUS(24, m_Chance, m_ChanceStatus) END_ACCESSOR() END_ACCESSOR_MAP() private: int m_CID; char m_Name[CHAR_INFOST::MAX_NAME_LEN]; // ij¸¯ÅÍ À̸§ unsigned char m_Sex; // ij¸¯ÅÍ ¼º unsigned char m_Hair; // ij¸¯ÅÍ ¸Ó¸® ¸ð¾ç unsigned char m_Face; // ij¸¯ÅÍ ¾ó±¼ ¸ð¾ç unsigned char m_Race; // ij¸¯ÅÍ ±¹°¡ short m_Class; // ij¸¯ÅÍ Å¬·¡½º int m_Fame; // ¸í¼º int m_Mileage; // ¸¶Àϸ®Áö int m_GID; // ij¸¯ÅÍ ±æµå int m_PID; // ij¸¯ÅÍ ÆÄƼ unsigned char m_Level; // ij¸¯ÅÍ ·¹º§ int m_Gold; // µ· short m_IP; // Áõ°¡ Æ÷ÀÎÆ® short m_STR; // ij¸¯ÅÍ STR short m_DEX; // ij¸¯ÅÍ DEX short m_CON; // ij¸¯ÅÍ CON short m_INT; // ij¸¯ÅÍ INT short m_WIS; // ij¸¯ÅÍ WIS short m_HP; // ij¸¯ÅÍ HP short m_MP; // ij¸¯ÅÍ MP __int64 m_Exp; // ij¸¯ÅÍ °æÇèÁ¡ unsigned char m_Chance; // ij¸¯ÅÍ Âù½º BYTE m_EquipData[MAX_EQUIP_DATA]; DBLENGTH m_NameLen; DBLENGTH m_EquipLen; // Data Status DBSTATUSENUM m_CIDStatus; DBSTATUSENUM m_NameStatus; DBSTATUSENUM m_SexStatus; DBSTATUSENUM m_HairStatus; DBSTATUSENUM m_FaceStatus; DBSTATUSENUM m_RaceStatus; DBSTATUSENUM m_ClassStatus; DBSTATUSENUM m_FameStatus; DBSTATUSENUM m_MileageStatus; DBSTATUSENUM m_GIDStatus; DBSTATUSENUM m_PIDStatus; DBSTATUSENUM m_LevelStatus; DBSTATUSENUM m_GoldStatus; DBSTATUSENUM m_IPStatus; DBSTATUSENUM m_STRStatus; DBSTATUSENUM m_DEXStatus; DBSTATUSENUM m_CONStatus; DBSTATUSENUM m_INTStatus; DBSTATUSENUM m_WISStatus; DBSTATUSENUM m_HPStatus; DBSTATUSENUM m_MPStatus; DBSTATUSENUM m_ExpStatus; DBSTATUSENUM m_ChanceStatus; DBSTATUSENUM m_EquipDataStatus; }; class CSkillData : public IRylDBCommand { public: CSkillData() { Init(); } void Init(void); void LogError(DBErrorType eErrorType, HRESULT hr); unsigned long GetCID() const { return static_cast(m_CID); } const SKILL& GetSkill() const { return reinterpret_cast(m_Skill); } void SetSkill(const SKILL& skill) { memcpy(m_Skill, &skill, sizeof(SKILL)); m_SkillLength = sizeof(SKILL); m_SkillStatus = DBSTATUS_S_OK; } bool operator == (const CSkillData& rhs) const; bool operator != (const CSkillData& rhs) const { return !(*this == rhs); } CString GetDBStatus(); BEGIN_ACCESSOR_MAP(CSkillData, 2) BEGIN_ACCESSOR(0, true) COLUMN_ENTRY_STATUS(1, m_CID, m_CIDStatus) COLUMN_ENTRY_LENGTH_STATUS(2, m_Skill, m_SkillLength, m_SkillStatus) END_ACCESSOR() BEGIN_ACCESSOR(1, true) COLUMN_ENTRY_LENGTH_STATUS(2, m_Skill, m_SkillLength, m_SkillStatus) END_ACCESSOR() END_ACCESSOR_MAP() private: int m_CID; BYTE m_Skill[sizeof(SKILL)]; DBLENGTH m_SkillLength; DBSTATUSENUM m_CIDStatus; DBSTATUSENUM m_SkillStatus; }; class CCharItem : public IRylDBCommand { public: CCharItem() { Init(); } void Init(); void LogError(DBErrorType eErrorType, HRESULT hr); void AdjustSize(bool bRestore); unsigned long GetCID() const { return static_cast(m_CID); } const QUICK& GetQuick() const { return reinterpret_cast(m_Quick); } const EQUIP& GetEquip() const { return reinterpret_cast(m_Equip); } const INVEN& GetInven() const { return reinterpret_cast(m_Inven); } const EXTRA& GetExtra() const { return reinterpret_cast(m_Extra); } void SetQuick(const QUICK& quick) { memcpy(m_Quick, &quick, sizeof(QUICK)); m_QuickLen = sizeof(QUICK); m_QuickStatus = DBSTATUS_S_OK; } void SetEquip(const EQUIP& equip) { memcpy(m_Equip, &equip, sizeof(EQUIP)); m_EquipLen = sizeof(EQUIP); m_EquipStatus = DBSTATUS_S_OK; } void SetInven(const INVEN& inven) { memcpy(m_Inven, &inven, sizeof(INVEN)); m_InvenLen = sizeof(INVEN); m_InvenStatus = DBSTATUS_S_OK; } void SetExtra(const EXTRA& extra) { memcpy(m_Extra, &extra, sizeof(EXTRA)); m_ExtraLen = sizeof(EXTRA); m_ExtraStatus = DBSTATUS_S_OK; } bool operator == (const CCharItem& rhs) const; bool operator != (const CCharItem& rhs) const { return !(*this == rhs); } CString GetDBStatus(); BEGIN_ACCESSOR_MAP(CCharItem, 2) BEGIN_ACCESSOR(0, true) COLUMN_ENTRY_STATUS(1, m_CID, m_CIDStatus) COLUMN_ENTRY_LENGTH_STATUS(2, m_Quick, m_QuickLen, m_QuickStatus) COLUMN_ENTRY_LENGTH_STATUS(3, m_Equip, m_EquipLen, m_EquipStatus) COLUMN_ENTRY_LENGTH_STATUS(4, m_Inven, m_InvenLen, m_InvenStatus) COLUMN_ENTRY_LENGTH_STATUS(5, m_Extra, m_ExtraLen, m_ExtraStatus) END_ACCESSOR() BEGIN_ACCESSOR(1, true) COLUMN_ENTRY_LENGTH_STATUS(2, m_Quick, m_QuickLen, m_QuickStatus) COLUMN_ENTRY_LENGTH_STATUS(3, m_Equip, m_EquipLen, m_EquipStatus) COLUMN_ENTRY_LENGTH_STATUS(4, m_Inven, m_InvenLen, m_InvenStatus) COLUMN_ENTRY_LENGTH_STATUS(5, m_Extra, m_ExtraLen, m_ExtraStatus) END_ACCESSOR() END_ACCESSOR_MAP() private: int m_CID; BYTE m_Quick[sizeof(QUICK)]; BYTE m_Equip[sizeof(EQUIP)]; BYTE m_Inven[sizeof(INVEN)]; BYTE m_Extra[sizeof(EXTRA)]; DBLENGTH m_QuickLen; DBLENGTH m_EquipLen; DBLENGTH m_InvenLen; DBLENGTH m_ExtraLen; DBSTATUSENUM m_CIDStatus; DBSTATUSENUM m_QuickStatus; DBSTATUSENUM m_EquipStatus; DBSTATUSENUM m_InvenStatus; DBSTATUSENUM m_ExtraStatus; bool m_bAdjustSize; }; class CCharItemEx : public IRylDBCommand { public: CCharItemEx() { Init(); } void Init(); void LogError(DBErrorType eErrorType, HRESULT hr); void AdjustSize(bool bRestore); unsigned long GetCID() const { return static_cast(m_CID); } const EXCHANGE& GetExchange() const { return reinterpret_cast(m_Exchange); } const TEMPINVEN& GetTempInven() const { return reinterpret_cast(m_TempInven); } void SetExchange(const EXCHANGE& exchange) { memcpy(m_Exchange, &exchange, sizeof(EXCHANGE)); m_ExchangeLen = sizeof(EXCHANGE); m_ExchangeStatus = DBSTATUS_S_OK; } void SetTempInven(const TEMPINVEN& tempInven) { memcpy(m_TempInven, &tempInven, sizeof(TEMPINVEN)); m_TempInvenLen = sizeof(TEMPINVEN); m_TempInvenStatus = DBSTATUS_S_OK; } bool operator == (const CCharItemEx& rhs) const; bool operator != (const CCharItemEx& rhs) const { return !(*this == rhs); } CString GetDBStatus(); BEGIN_ACCESSOR_MAP(CCharItemEx, 2) BEGIN_ACCESSOR(0, true) COLUMN_ENTRY_STATUS(1, m_CID, m_CIDStatus) COLUMN_ENTRY_LENGTH_STATUS(2, m_Exchange, m_ExchangeLen, m_ExchangeStatus) COLUMN_ENTRY_LENGTH_STATUS(3, m_TempInven, m_TempInvenLen, m_TempInvenStatus) END_ACCESSOR() BEGIN_ACCESSOR(1, true) COLUMN_ENTRY_LENGTH_STATUS(2, m_Exchange, m_ExchangeLen, m_ExchangeStatus) COLUMN_ENTRY_LENGTH_STATUS(3, m_TempInven, m_TempInvenLen, m_TempInvenStatus) END_ACCESSOR() END_ACCESSOR_MAP() private: int m_CID; BYTE m_Exchange[sizeof(EXCHANGE)]; BYTE m_TempInven[sizeof(TEMPINVEN)]; DBLENGTH m_ExchangeLen; DBLENGTH m_TempInvenLen; DBSTATUSENUM m_CIDStatus; DBSTATUSENUM m_ExchangeStatus; DBSTATUSENUM m_TempInvenStatus; bool m_bAdjustSize; }; class CCharQuest : public IRylDBCommand { public: CCharQuest() { Init(); } void Init(); void LogError(DBErrorType eErrorType, HRESULT hr); void AdjustSize(bool bRestore); unsigned long GetCID() const { return static_cast(m_CID); } const QUEST& GetQuest() const { return reinterpret_cast(m_Quest); } const HISTORY& GetHistory() const { return reinterpret_cast(m_History); } void SetQuest(QUEST& quest) { memcpy(m_Quest, &quest, sizeof(QUEST)); m_QuestLen = sizeof(QUEST); m_QuestStatus = DBSTATUS_S_OK; } void SetHistory(HISTORY& history) { memcpy(m_History, &history, sizeof(HISTORY)); m_HistoryLen = sizeof(HISTORY); m_HistoryStatus = DBSTATUS_S_OK; } bool operator == (const CCharQuest& rhs) const; bool operator != (const CCharQuest& rhs) const { return !(*this == rhs); } CString GetDBStatus(); BEGIN_ACCESSOR_MAP(CCharQuest, 2) BEGIN_ACCESSOR(0, true) COLUMN_ENTRY_STATUS(1, m_CID, m_CIDStatus) COLUMN_ENTRY_LENGTH_STATUS(2, m_Quest, m_QuestLen, m_QuestStatus) COLUMN_ENTRY_LENGTH_STATUS(3, m_History, m_HistoryLen, m_HistoryStatus); END_ACCESSOR() BEGIN_ACCESSOR(1, true) COLUMN_ENTRY_LENGTH_STATUS(2, m_Quest, m_QuestLen, m_QuestStatus) COLUMN_ENTRY_LENGTH_STATUS(3, m_History, m_HistoryLen, m_HistoryStatus); END_ACCESSOR() END_ACCESSOR_MAP() private: int m_CID; BYTE m_Quest[sizeof(QUEST)]; BYTE m_History[sizeof(HISTORY)]; DBLENGTH m_QuestLen; DBLENGTH m_HistoryLen; DBSTATUSENUM m_CIDStatus; DBSTATUSENUM m_QuestStatus; DBSTATUSENUM m_HistoryStatus; bool m_bAdjustSize; }; class CPartyData : public IRylDBCommand { public: CPartyData() { Init(); } void Init(); void LogError(DBErrorType eErrorType, HRESULT hr); unsigned long GetPID() const { return static_cast(m_PID); } unsigned long GetGID() const { return static_cast(m_GID); } const PARTY_DB_INFO GetParty() const { PARTY_DB_INFO dbInfo; memcpy(&dbInfo.PartyInfo, m_PartyInfo, sizeof(m_PartyInfo)); memcpy(&dbInfo.PartyUserInfo, m_UserInfo, sizeof(m_UserInfo)); //dbInfo.dwGID = m_GID; return dbInfo; } void SetGID(unsigned long dwGID) { m_GID = dwGID; m_GIDStatus = DBSTATUS_S_OK; } void SetParty(const PARTY_INFO& partyInfo) { memcpy(m_PartyInfo, &partyInfo, sizeof(m_PartyInfo)); m_PartyLen = sizeof(m_PartyInfo); m_PartyStatus = DBSTATUS_S_OK; } void SetUserInfo(const PARTY_USER_INFO& userInfo) { memcpy(m_UserInfo, &userInfo, sizeof(PARTY_USER_INFO)); m_UserInfoLen = sizeof(PARTY_USER_INFO); m_UserInfoStatus = DBSTATUS_S_OK; } bool operator == (const CPartyData& rhs) const; bool operator != (const CPartyData& rhs) const { return !(*this == rhs); } CString GetDBStatus(); BEGIN_ACCESSOR_MAP(CPartyData, 2) BEGIN_ACCESSOR(0, true) COLUMN_ENTRY_STATUS(1, m_PID, m_PIDStatus) COLUMN_ENTRY_LENGTH_STATUS(2, m_PartyInfo, m_PartyLen, m_PartyStatus) COLUMN_ENTRY_LENGTH_STATUS(3, m_UserInfo, m_UserInfoLen, m_UserInfoStatus); COLUMN_ENTRY_STATUS(4, m_GID, m_GIDStatus) END_ACCESSOR() BEGIN_ACCESSOR(1, true) COLUMN_ENTRY_LENGTH_STATUS(2, m_PartyInfo, m_PartyLen, m_PartyStatus) COLUMN_ENTRY_LENGTH_STATUS(3, m_UserInfo, m_UserInfoLen, m_UserInfoStatus); COLUMN_ENTRY_STATUS(4, m_GID, m_GIDStatus) END_ACCESSOR() END_ACCESSOR_MAP() private: int m_PID; int m_GID; BYTE m_PartyInfo[sizeof(PARTY_INFO)]; BYTE m_UserInfo[sizeof(PARTY_USER_INFO)]; DBLENGTH m_PartyLen; DBLENGTH m_UserInfoLen; DBSTATUSENUM m_PIDStatus; DBSTATUSENUM m_GIDStatus; DBSTATUSENUM m_PartyStatus; DBSTATUSENUM m_UserInfoStatus; }; class CFriendData : public IRylDBCommand { public: CFriendData() { Init(); } void Init(); void AdjustSize(bool bRestore); void LogError(DBErrorType eErrorType, HRESULT hr); unsigned long GetCID() const { return static_cast(m_CID); } const FRIEND GetFriend() const; const BAN GetBan() const; void SetFriend(const FRIEND& friendData); void SetBan(const BAN& banData); bool operator == (const CFriendData& rhs) const; bool operator != (const CFriendData& rhs) const { return !(*this == rhs); } CString GetDBStatus(); BEGIN_ACCESSOR_MAP(CFriendData, 2) BEGIN_ACCESSOR(0, true) COLUMN_ENTRY_STATUS(1, m_CID, m_CIDStatus) COLUMN_ENTRY_LENGTH_STATUS(2, m_Friend, m_FriendLen, m_FriendStatus) COLUMN_ENTRY_LENGTH_STATUS(3, m_Ban, m_BanLen, m_BanStatus) COLUMN_ENTRY_LENGTH_STATUS(4, m_FriendInfo, m_FriendInfoLen, m_FriendInfoStatus); COLUMN_ENTRY_LENGTH_STATUS(5, m_BanInfo, m_BanInfoLen, m_BanInfoStatus); END_ACCESSOR() BEGIN_ACCESSOR(1, true) COLUMN_ENTRY_LENGTH_STATUS(2, m_Friend, m_FriendLen, m_FriendStatus) COLUMN_ENTRY_LENGTH_STATUS(3, m_Ban, m_BanLen, m_BanStatus) COLUMN_ENTRY_LENGTH_STATUS(4, m_FriendInfo, m_FriendInfoLen, m_FriendInfoStatus); COLUMN_ENTRY_LENGTH_STATUS(5, m_BanInfo, m_BanInfoLen, m_BanInfoStatus); END_ACCESSOR() END_ACCESSOR_MAP() private: int m_CID; BYTE m_Friend[_FRIEND::MAX_FRIEND_SIZE + sizeof(unsigned long)]; BYTE m_Ban[_BAN::MAX_BAN_SIZE + sizeof(unsigned long)]; BYTE m_FriendInfo[_FRIEND::MAX_FRIENDINFO_SIZE + sizeof(unsigned long)]; BYTE m_BanInfo[_BAN::MAX_BANINFO_SIZE + sizeof(unsigned long)]; DBLENGTH m_FriendLen; DBLENGTH m_BanLen; DBLENGTH m_FriendInfoLen; DBLENGTH m_BanInfoLen; DBSTATUSENUM m_CIDStatus; DBSTATUSENUM m_FriendStatus; DBSTATUSENUM m_BanStatus; DBSTATUSENUM m_FriendInfoStatus; DBSTATUSENUM m_BanInfoStatus; bool m_bAdjustSize; }; class CUnifiedCharList : public IRylDBCommand { public: enum { MAX_NAME_LEN = 20 }; CUnifiedCharList() { Init(); } void Init(); void LogError(DBErrorType eErrorType, HRESULT hr); CString GetDBStatus(); unsigned long GetUID() const { return static_cast(m_UID); } unsigned long GetBeforeCID() const { return static_cast(m_BeforeCID); } unsigned long GetNewCID() const { return static_cast(m_NewCID); } unsigned char GetOldServerGroupID() const { return m_OldServerGroupID; } const char* GetBeforeCharName() const { return m_BeforeCharName; } bool operator == (const CUnifiedCharList& rhs) const; bool operator != (const CUnifiedCharList& rhs) const { return !(*this == rhs); } BEGIN_ACCESSOR_MAP(CUnifiedCharList, 2) BEGIN_ACCESSOR(0, true) COLUMN_ENTRY_STATUS(1, m_UID, m_UIDStatus) COLUMN_ENTRY_STATUS(2, m_OldServerGroupID, m_OldServerGroupIDStatus) COLUMN_ENTRY_STATUS(3, m_BeforeCID, m_BeforeCIDStatus) COLUMN_ENTRY_STATUS(4, m_NewCID, m_NewCIDStatus) COLUMN_ENTRY_LENGTH_STATUS(5, m_BeforeCharName, m_BeforeCharNameLen, m_BeforeCharNameStatus); END_ACCESSOR() BEGIN_ACCESSOR(1, true) COLUMN_ENTRY_STATUS(2, m_OldServerGroupID, m_OldServerGroupIDStatus) COLUMN_ENTRY_STATUS(3, m_BeforeCID, m_BeforeCIDStatus) COLUMN_ENTRY_STATUS(4, m_NewCID, m_NewCIDStatus) COLUMN_ENTRY_LENGTH_STATUS(5, m_BeforeCharName, m_BeforeCharNameLen, m_BeforeCharNameStatus); END_ACCESSOR() END_ACCESSOR_MAP() private: int m_UID; int m_BeforeCID; int m_NewCID; char m_BeforeCharName[MAX_NAME_LEN]; BYTE m_OldServerGroupID; DBLENGTH m_BeforeCharNameLen; DBSTATUSENUM m_UIDStatus; DBSTATUSENUM m_OldServerGroupIDStatus; DBSTATUSENUM m_BeforeCIDStatus; DBSTATUSENUM m_NewCIDStatus; DBSTATUSENUM m_BeforeCharNameStatus; }; }; #endif