Files
wnmj/Servers/服务器组件/登录服务器/DataBaseEngineSink.cpp

1736 lines
58 KiB
C++
Raw Normal View History

2026-02-13 14:34:15 +08:00
#include "StdAfx.h"
#include "ServiceUnits.h"
#include "DataBaseEngineSink.h"
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDataBaseEngineSink::CDataBaseEngineSink()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pInitParameter=NULL;
m_pIDataBaseEngineEvent=NULL;
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDataBaseEngineSink::~CDataBaseEngineSink()
{
}
//<2F>ӿڲ<D3BF>ѯ
VOID * CDataBaseEngineSink::QueryInterface(REFGUID Guid, DWORD dwQueryVer)
{
QUERYINTERFACE(IDataBaseEngineSink,Guid,dwQueryVer);
QUERYINTERFACE_IUNKNOWNEX(IDataBaseEngineSink,Guid,dwQueryVer);
return NULL;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
bool CDataBaseEngineSink::OnDataBaseEngineStart(IUnknownEx * pIUnknownEx)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ((m_AccountsDBModule.GetInterface()==NULL)&&(m_AccountsDBModule.CreateInstance()==false))
{
ASSERT(FALSE);
return false;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ((m_TreasureDBModule.GetInterface()==NULL)&&(m_TreasureDBModule.CreateInstance()==false))
{
ASSERT(FALSE);
return false;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ((m_PlatformDBModule.GetInterface()==NULL)&&(m_PlatformDBModule.CreateInstance()==false))
{
ASSERT(FALSE);
return false;
}
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
tagDataBaseParameter * pAccountsDBParameter=&m_pInitParameter->m_AccountsDBParameter;
tagDataBaseParameter * pTreasureDBParameter=&m_pInitParameter->m_TreasureDBParameter;
tagDataBaseParameter * pPlatformDBParameter=&m_pInitParameter->m_PlatformDBParameter;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_AccountsDBModule->SetConnectionInfo(pAccountsDBParameter->szDataBaseAddr,pAccountsDBParameter->wDataBasePort,
pAccountsDBParameter->szDataBaseName,pAccountsDBParameter->szDataBaseUser,pAccountsDBParameter->szDataBasePass);
m_TreasureDBModule->SetConnectionInfo(pTreasureDBParameter->szDataBaseAddr,pTreasureDBParameter->wDataBasePort,
pTreasureDBParameter->szDataBaseName,pTreasureDBParameter->szDataBaseUser,pTreasureDBParameter->szDataBasePass);
m_PlatformDBModule->SetConnectionInfo(pPlatformDBParameter->szDataBaseAddr,pPlatformDBParameter->wDataBasePort,
pPlatformDBParameter->szDataBaseName,pPlatformDBParameter->szDataBaseUser,pPlatformDBParameter->szDataBasePass);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_AccountsDBModule->OpenConnection();
m_AccountsDBAide.SetDataBase(m_AccountsDBModule.GetInterface());
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_TreasureDBModule->OpenConnection();
m_TreasureDBAide.SetDataBase(m_TreasureDBModule.GetInterface());
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_PlatformDBModule->OpenConnection();
m_PlatformDBAide.SetDataBase(m_PlatformDBModule.GetInterface());
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
LPCTSTR pszDescribe=pIException->GetExceptionDescribe();
CTraceService::TraceString(pszDescribe,TraceLevel_Exception);
return false;
}
return true;
}
//ֹͣ<CDA3>¼<EFBFBD>
bool CDataBaseEngineSink::OnDataBaseEngineConclude(IUnknownEx * pIUnknownEx)
{
//<2F><><EFBFBD>ö<EFBFBD><C3B6><EFBFBD>
m_AccountsDBAide.SetDataBase(NULL);
m_TreasureDBAide.SetDataBase(NULL);
m_PlatformDBAide.SetDataBase(NULL);
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
if (m_AccountsDBModule.GetInterface()!=NULL)
{
m_AccountsDBModule->CloseConnection();
m_AccountsDBModule.CloseInstance();
}
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
if (m_TreasureDBModule.GetInterface()!=NULL)
{
m_TreasureDBModule->CloseConnection();
m_TreasureDBModule.CloseInstance();
}
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
if (m_PlatformDBModule.GetInterface()!=NULL)
{
m_PlatformDBModule->CloseConnection();
m_PlatformDBModule.CloseInstance();
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pInitParameter=NULL;
m_pIDataBaseEngineEvent=NULL;
return true;
}
//ʱ<><CAB1><EFBFBD>¼<EFBFBD>
bool CDataBaseEngineSink::OnDataBaseEngineTimer(DWORD dwTimerID, WPARAM dwBindParameter)
{
return false;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
bool CDataBaseEngineSink::OnDataBaseEngineControl(WORD wControlID, VOID * pData, WORD wDataSize)
{
return false;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
bool CDataBaseEngineSink::OnDataBaseEngineRequest(WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize)
{
switch (wRequestID)
{
case DBR_GP_LOGON_ACCOUNTS: //<2F>ʺŵ<CABA>¼
{
return OnRequestLogonAccounts(dwContextID,pData,wDataSize);
}
case DBR_GP_REGISTER_ACCOUNTS: //ע<><D7A2><EFBFBD>ʺ<EFBFBD>
{
return OnRequestRegisterAccounts(dwContextID,pData,wDataSize);
}
case DBR_GP_MODIFY_MACHINE: //<2F>޸Ļ<DEB8><C4BB><EFBFBD>
{
return OnRequestModifyMachine(dwContextID,pData,wDataSize);
}
case DBR_GP_MODIFY_LOGON_PASS: //<2F>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
{
return OnRequestModifyLogonPass(dwContextID,pData,wDataSize);
}
case DBR_GP_MODIFY_INDIVIDUAL: //<2F>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
{
return OnRequestModifyIndividual(dwContextID,pData,wDataSize);
}
case DBR_GP_QUERY_INDIVIDUAL: //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
{
return OnRequestQueryIndividual(dwContextID,pData,wDataSize);
}
case DBR_GP_QUERY_ACCOUNTINFO: //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
{
return OnRequestQueryAccountInfo(dwContextID,pData,wDataSize);
}
case DBR_GP_USER_INGAME_SERVERID: //<2F><>Ϸ״̬
{
return OnRequestUserInGameServerID(dwContextID, pData, wDataSize);
}
case DBR_GP_USER_WXSHARE_SUCCESS: //΢<>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD>ɹ<EFBFBD>
{
return OnRequestUserWXShareSuccess(dwContextID, pData, wDataSize);
}
case DBR_GP_LOAD_GAME_LIST: //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
{
return OnRequestLoadGameList(dwContextID,pData,wDataSize);
}
case DBR_GP_ONLINE_COUNT_INFO: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
{
return OnRequestOnLineCountInfo(dwContextID,pData,wDataSize);
}
case DBR_GP_GAME_RECORD_LIST:
{
return OnRequestGameRecordList(dwContextID,pData,wDataSize);
}
case DBR_GP_GAME_TOTAL_RECORD:
{
return OnRequestGameTotalRecord(dwContextID,pData,wDataSize);
}
case DBR_GP_GAME_CHILD_RECORD:
{
return OnRequestGameChildRecord(dwContextID, pData, wDataSize);
}
case DBR_GP_QUERY_IN_MATCH:
{
return OnRequestQueryInMatch(dwContextID, pData, wDataSize);
}
case DBR_GP_QUERY_IN_UNION:
{
return OnRequestQueryInUnion(dwContextID, pData, wDataSize);
}
case DBR_GP_GET_UNION_LIST:
{
return OnRequestGetUnionList(dwContextID, pData, wDataSize);
}
case DBR_GP_GET_UNION_ROOM_LIST:
{
return OnRequestGetUnionRoomList(dwContextID, pData, wDataSize);
}
case DBR_GP_GET_AUTO_ROOM_LIST:
{
return OnRequestGetAutoRoomList(dwContextID, pData, wDataSize);
}
}
return false;
}
//<2F>ʺŵ<CABA>¼
bool CDataBaseEngineSink::OnRequestLogonAccounts(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(wDataSize==sizeof(DBR_GP_LogonAccounts));
if (wDataSize!=sizeof(DBR_GP_LogonAccounts)) return false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_LogonAccounts * pLogonAccounts=(DBR_GP_LogonAccounts *)pData;
//ִ<><D6B4><EFBFBD>ж<EFBFBD>
tagBindParameter * pBindParameter=(tagBindParameter *)pLogonAccounts->pBindParameter;
if (pBindParameter->dwSocketID!=dwContextID) return true;
//ת<><D7AA><EFBFBD><EFBFBD>ַ
TCHAR szClientAddr[16]=TEXT("");
BYTE * pClientAddr=(BYTE *)&pLogonAccounts->dwClientAddr;
_sntprintf_s(szClientAddr,CountArray(szClientAddr),TEXT("%d.%d.%d.%d"),pClientAddr[0],pClientAddr[1],pClientAddr[2],pClientAddr[3]);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@strAccounts"),pLogonAccounts->szAccounts);
m_AccountsDBAide.AddParameter(TEXT("@strPassword"),pLogonAccounts->szPassword);
m_AccountsDBAide.AddParameter(TEXT("@strClientIP"),szClientAddr);
m_AccountsDBAide.AddParameter(TEXT("@strMachineID"),pLogonAccounts->szMachineID);
m_AccountsDBAide.AddParameter(TEXT("@strOpenId"), pLogonAccounts->szOpenId);
m_AccountsDBAide.AddParameter(TEXT("@strUnionid"), pLogonAccounts->szUnionid);
m_AccountsDBAide.AddParameter(TEXT("@nNeeValidateMBCard"),pLogonAccounts->cbNeeValidateMBCard);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szDescribeString[128]=TEXT("");
m_AccountsDBAide.AddParameterOutput(TEXT("@strErrorDescribe"),szDescribeString,sizeof(szDescribeString),adParamOutput);
//ִ<>в<EFBFBD>ѯ
LONG lResultCode=m_AccountsDBAide.ExecuteProcess(TEXT("GSP_GP_EfficacyAccounts"),true);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDBVarValue DBVarValue;
m_AccountsDBModule->GetParameter(TEXT("@strErrorDescribe"),DBVarValue);
OnLogonDisposeResult(dwContextID,lResultCode,CW2CT(DBVarValue.bstrVal),false);
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
CTraceService::TraceString(pIException->GetExceptionDescribe(),TraceLevel_Exception);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OnLogonDisposeResult(dwContextID,DB_ERROR,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>"),false);
return false;
}
return true;
}
//ע<><EFBFBD><E1B4A6>
bool CDataBaseEngineSink::OnRequestRegisterAccounts(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(wDataSize==sizeof(DBR_GP_RegisterAccounts));
if (wDataSize!=sizeof(DBR_GP_RegisterAccounts)) return false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_RegisterAccounts * pRegisterAccounts=(DBR_GP_RegisterAccounts *)pData;
//ִ<><D6B4><EFBFBD>ж<EFBFBD>
tagBindParameter * pBindParameter=(tagBindParameter *)pRegisterAccounts->pBindParameter;
if(!pBindParameter) return false;
if (pBindParameter->dwSocketID!=dwContextID) return true;
//ת<><D7AA><EFBFBD><EFBFBD>ַ
TCHAR szClientAddr[16]=TEXT("");
BYTE * pClientAddr=(BYTE *)&pRegisterAccounts->dwClientAddr;
_sntprintf_s(szClientAddr,CountArray(szClientAddr),TEXT("%d.%d.%d.%d"),pClientAddr[0],pClientAddr[1],pClientAddr[2],pClientAddr[3]);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@strOpenId"), pRegisterAccounts->szOpenId);
m_AccountsDBAide.AddParameter(TEXT("@strUnionid"), pRegisterAccounts->szUnionid);
m_AccountsDBAide.AddParameter(TEXT("@strAccounts"),pRegisterAccounts->szAccounts);
m_AccountsDBAide.AddParameter(TEXT("@strNickName"),pRegisterAccounts->szNickName);
m_AccountsDBAide.AddParameter(TEXT("@strSpreader"),pRegisterAccounts->szSpreader);
m_AccountsDBAide.AddParameter(TEXT("@strLogonPass"),pRegisterAccounts->szLogonPass);
m_AccountsDBAide.AddParameter(TEXT("@strInsurePass"),pRegisterAccounts->szInsurePass);
m_AccountsDBAide.AddParameter(TEXT("@wFaceID"),pRegisterAccounts->wFaceID);
m_AccountsDBAide.AddParameter(TEXT("@cbGender"),pRegisterAccounts->cbGender);
m_AccountsDBAide.AddParameter(TEXT("@strPassPortID"),pRegisterAccounts->szPassPortID);
m_AccountsDBAide.AddParameter(TEXT("@strCompellation"),pRegisterAccounts->szCompellation);
m_AccountsDBAide.AddParameter(TEXT("@strClientIP"),szClientAddr);
m_AccountsDBAide.AddParameter(TEXT("@strMachineID"),pRegisterAccounts->szMachineID);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szDescribeString[128]=TEXT("");
m_AccountsDBAide.AddParameterOutput(TEXT("@strErrorDescribe"),szDescribeString,sizeof(szDescribeString),adParamOutput);
//ִ<>в<EFBFBD>ѯ
LONG lResultCode=m_AccountsDBAide.ExecuteProcess(TEXT("GSP_GP_RegisterAccounts"),true);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDBVarValue DBVarValue;
m_AccountsDBModule->GetParameter(TEXT("@strErrorDescribe"),DBVarValue);
OnLogonDisposeResult(dwContextID,lResultCode,CW2CT(DBVarValue.bstrVal),false);
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
CTraceService::TraceString(pIException->GetExceptionDescribe(),TraceLevel_Exception);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OnLogonDisposeResult(dwContextID,DB_ERROR,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>"),false);
return false;
}
return true;
}
//<2F>޸Ļ<DEB8><C4BB><EFBFBD>
bool CDataBaseEngineSink::OnRequestModifyMachine(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(wDataSize==sizeof(DBR_GP_ModifyMachine));
if (wDataSize!=sizeof(DBR_GP_ModifyMachine)) return false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_ModifyMachine * pModifyMachine=(DBR_GP_ModifyMachine *)pData;
//ת<><D7AA><EFBFBD><EFBFBD>ַ
TCHAR szClientAddr[16]=TEXT("");
BYTE * pClientAddr=(BYTE *)&pModifyMachine->dwClientAddr;
_sntprintf_s(szClientAddr,CountArray(szClientAddr),TEXT("%d.%d.%d.%d"),pClientAddr[0],pClientAddr[1],pClientAddr[2],pClientAddr[3]);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@dwUserID"),pModifyMachine->dwUserID);
m_AccountsDBAide.AddParameter(TEXT("@strPassword"),pModifyMachine->szPassword);
m_AccountsDBAide.AddParameter(TEXT("@strClientIP"),szClientAddr);
m_AccountsDBAide.AddParameter(TEXT("@strMachineID"),pModifyMachine->szMachineID);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WCHAR szDescribe[128]=L"";
m_AccountsDBAide.AddParameterOutput(TEXT("@strErrorDescribe"),szDescribe,sizeof(szDescribe),adParamOutput);
//<2F>󶨲<EFBFBD><F3B6A8B2><EFBFBD>
if (pModifyMachine->cbBind==TRUE)
{
m_AccountsDBAide.ExecuteProcess(TEXT("GSP_GP_MoorMachine"),false);
}
else
{
m_AccountsDBAide.ExecuteProcess(TEXT("GSP_GP_UnMoorMachine"),false);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_AccountsDBAide.GetReturnValue()==DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_GP_OperateSuccess OperateSuccess;
ZeroMemory(&OperateSuccess,sizeof(OperateSuccess));
//<2F><>ȡ<EFBFBD><C8A1>Ϣ
CDBVarValue DBVarValue;
m_AccountsDBModule->GetParameter(TEXT("@strErrorDescribe"),DBVarValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OperateSuccess.lResultCode=m_AccountsDBModule->GetReturnValue();
lstrcpyn(OperateSuccess.szDescribeString,CW2CT(DBVarValue.bstrVal),CountArray(OperateSuccess.szDescribeString));
//<2F><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
WORD wStringSize=CountStringBuffer(OperateSuccess.szDescribeString);
WORD wSendSize=sizeof(OperateSuccess)-sizeof(OperateSuccess.szDescribeString)+wStringSize;
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_OPERATE_SUCCESS,dwContextID,&OperateSuccess,wSendSize);
}
else
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_GP_OperateFailure OperateFailure;
ZeroMemory(&OperateFailure,sizeof(OperateFailure));
//<2F><>ȡ<EFBFBD><C8A1>Ϣ
CDBVarValue DBVarValue;
m_AccountsDBModule->GetParameter(TEXT("@strErrorDescribe"),DBVarValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OperateFailure.lResultCode=m_AccountsDBModule->GetReturnValue();
lstrcpyn(OperateFailure.szDescribeString,CW2CT(DBVarValue.bstrVal),CountArray(OperateFailure.szDescribeString));
//<2F><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
WORD wStringSize=CountStringBuffer(OperateFailure.szDescribeString);
WORD wSendSize=sizeof(OperateFailure)-sizeof(OperateFailure.szDescribeString)+wStringSize;
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_OPERATE_FAILURE,dwContextID,&OperateFailure,wSendSize);
}
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CTraceService::TraceString(pIException->GetExceptionDescribe(),TraceLevel_Exception);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OnOperateDisposeResult(dwContextID,DB_ERROR,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>"),false);
return false;
}
return true;
}
//<2F>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
bool CDataBaseEngineSink::OnRequestModifyLogonPass(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(wDataSize==sizeof(DBR_GP_ModifyLogonPass));
if (wDataSize!=sizeof(DBR_GP_ModifyLogonPass)) return false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_ModifyLogonPass * pModifyLogonPass=(DBR_GP_ModifyLogonPass *)pData;
//ת<><D7AA><EFBFBD><EFBFBD>ַ
TCHAR szClientAddr[16]=TEXT("");
BYTE * pClientAddr=(BYTE *)&pModifyLogonPass->dwClientAddr;
_sntprintf_s(szClientAddr,CountArray(szClientAddr),TEXT("%d.%d.%d.%d"),pClientAddr[0],pClientAddr[1],pClientAddr[2],pClientAddr[3]);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@dwUserID"),pModifyLogonPass->dwUserID);
m_AccountsDBAide.AddParameter(TEXT("@strScrPassword"),pModifyLogonPass->szScrPassword);
m_AccountsDBAide.AddParameter(TEXT("@strDesPassword"),pModifyLogonPass->szDesPassword);
m_AccountsDBAide.AddParameter(TEXT("@strClientIP"),szClientAddr);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WCHAR szDescribe[128]=L"";
m_AccountsDBAide.AddParameterOutput(TEXT("@strErrorDescribe"),szDescribe,sizeof(szDescribe),adParamOutput);
//ִ<>в<EFBFBD>ѯ
LONG lResultCode=m_AccountsDBAide.ExecuteProcess(TEXT("GSP_GP_ModifyLogonPassword"),false);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDBVarValue DBVarValue;
m_AccountsDBModule->GetParameter(TEXT("@strErrorDescribe"),DBVarValue);
OnOperateDisposeResult(dwContextID,lResultCode,CW2CT(DBVarValue.bstrVal),false);
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CTraceService::TraceString(pIException->GetExceptionDescribe(),TraceLevel_Exception);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OnOperateDisposeResult(dwContextID,DB_ERROR,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>"),false);
return false;
}
return true;
}
//<2F>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
bool CDataBaseEngineSink::OnRequestModifyIndividual(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(wDataSize==sizeof(DBR_GP_ModifyIndividual));
if (wDataSize!=sizeof(DBR_GP_ModifyIndividual)) return false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_ModifyIndividual * pModifyIndividual=(DBR_GP_ModifyIndividual *)pData;
//ת<><D7AA><EFBFBD><EFBFBD>ַ
TCHAR szClientAddr[16]=TEXT("");
BYTE * pClientAddr=(BYTE *)&pModifyIndividual->dwClientAddr;
_sntprintf_s(szClientAddr,CountArray(szClientAddr),TEXT("%d.%d.%d.%d"),pClientAddr[0],pClientAddr[1],pClientAddr[2],pClientAddr[3]);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@dwUserID"),pModifyIndividual->dwUserID);
m_AccountsDBAide.AddParameter(TEXT("@strPassword"),pModifyIndividual->szPassword);
m_AccountsDBAide.AddParameter(TEXT("@cbGender"),pModifyIndividual->cbGender);
m_AccountsDBAide.AddParameter(TEXT("@strNickName"),pModifyIndividual->szNickName);
m_AccountsDBAide.AddParameter(TEXT("@strUnderWrite"),pModifyIndividual->szUnderWrite);
m_AccountsDBAide.AddParameter(TEXT("@strCompellation"),pModifyIndividual->szCompellation);
m_AccountsDBAide.AddParameter(TEXT("@strQQ"),pModifyIndividual->szQQ);
m_AccountsDBAide.AddParameter(TEXT("@strEMail"),pModifyIndividual->szEMail);
m_AccountsDBAide.AddParameter(TEXT("@strSeatPhone"),pModifyIndividual->szSeatPhone);
m_AccountsDBAide.AddParameter(TEXT("@strMobilePhone"),pModifyIndividual->szMobilePhone);
m_AccountsDBAide.AddParameter(TEXT("@strDwellingPlace"),pModifyIndividual->szDwellingPlace);
m_AccountsDBAide.AddParameter(TEXT("@strUserNote"),pModifyIndividual->szUserNote);
m_AccountsDBAide.AddParameter(TEXT("@strHeadHttp"),pModifyIndividual->szHeadHttp);
m_AccountsDBAide.AddParameter(TEXT("@strUserChannel"),pModifyIndividual->szUserChannel);
m_AccountsDBAide.AddParameter(TEXT("@strClientIP"),szClientAddr);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WCHAR szDescribe[128]=L"";
m_AccountsDBAide.AddParameterOutput(TEXT("@strErrorDescribe"),szDescribe,sizeof(szDescribe),adParamOutput);
//ִ<>в<EFBFBD>ѯ
LONG lResultCode=m_AccountsDBAide.ExecuteProcess(TEXT("GSP_GP_ModifyUserIndividual"),false);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDBVarValue DBVarValue;
m_AccountsDBModule->GetParameter(TEXT("@strErrorDescribe"),DBVarValue);
OnOperateDisposeResult(dwContextID,lResultCode,CW2CT(DBVarValue.bstrVal),false);
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CTraceService::TraceString(pIException->GetExceptionDescribe(),TraceLevel_Exception);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OnOperateDisposeResult(dwContextID,DB_ERROR,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>"),false);
return false;
}
return true;
}
//<2F>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
bool CDataBaseEngineSink::OnRequestUserInGameServerID(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(wDataSize==sizeof(DBR_GP_QueryUserInGameServerID));
if (wDataSize!=sizeof(DBR_GP_QueryUserInGameServerID)) return false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_QueryUserInGameServerID * pModifyIndividual=(DBR_GP_QueryUserInGameServerID *)pData;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@dwUserID"),pModifyIndividual->dwUserID);
//ִ<>в<EFBFBD>ѯ
LONG lResultCode=m_AccountsDBAide.ExecuteProcess(TEXT("GSP_GP_QueryUserInGameServerID"),true);
if (lResultCode==DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_GP_UserInGameServerID kGPNetInfo;
ZeroMemory(&kGPNetInfo,sizeof(kGPNetInfo));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
kGPNetInfo.LockKindID=m_AccountsDBAide.GetValue_DWORD(TEXT("LockKindID"));
kGPNetInfo.LockServerID=m_AccountsDBAide.GetValue_DWORD(TEXT("LockServerID"));
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_USER_INGAME_SERVER_ID,dwContextID,&kGPNetInfo,sizeof(kGPNetInfo));
}
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CTraceService::TraceString(pIException->GetExceptionDescribe(),TraceLevel_Exception);
return false;
}
return true;
}
//΢<>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD>ɹ<EFBFBD>
bool CDataBaseEngineSink::OnRequestUserWXShareSuccess(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(wDataSize == sizeof(DBR_GP_WXShareSuccess));
if (wDataSize != sizeof(DBR_GP_WXShareSuccess)) return false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_WXShareSuccess * pWXShare = (DBR_GP_WXShareSuccess *)pData;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@dwUserID"), pWXShare->dwUserID);
m_AccountsDBAide.AddParameter(TEXT("@strPassword"), pWXShare->szPassword);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szDescribeString[128] = TEXT("");
m_AccountsDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
//ִ<>в<EFBFBD>ѯ
LONG lResultCode = m_AccountsDBAide.ExecuteProcess(TEXT("GSP_GP_UserWXShareSuccess"), true);
if (lResultCode == DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_GP_WXShareReward mReward;
ZeroMemory(&mReward, sizeof(mReward));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mReward.dwUserID = pWXShare->dwUserID;
mReward.cbFKCount = m_AccountsDBAide.GetValue_BYTE(TEXT("FKCount"));
if (mReward.cbFKCount>0)
{
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_USER_WXSHARE_REWARD, dwContextID, &mReward, sizeof(mReward));
}
}
else
{
CDBVarValue DBVarValue;
m_AccountsDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_GP_OperateFailure OperateFailure;
ZeroMemory(&OperateFailure, sizeof(OperateFailure));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OperateFailure.lResultCode = lResultCode;
lstrcpyn(OperateFailure.szDescribeString, CW2CT(DBVarValue.bstrVal), CountArray(OperateFailure.szDescribeString));
//<2F><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
WORD wDataSize = CountStringBuffer(OperateFailure.szDescribeString);
WORD wHeadSize = sizeof(OperateFailure) - sizeof(OperateFailure.szDescribeString);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_OPERATE_FAILURE, dwContextID, &OperateFailure, wHeadSize + wDataSize);
}
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
return false;
}
return true;
}
//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
bool CDataBaseEngineSink::OnRequestQueryAccountInfo(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(wDataSize==sizeof(DBR_GP_QueryAccountInfo));
if (wDataSize!=sizeof(DBR_GP_QueryAccountInfo)) return false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_QueryAccountInfo * pQueryAccountInfo=(DBR_GP_QueryAccountInfo *)pData;
//ת<><D7AA><EFBFBD><EFBFBD>ַ
TCHAR szClientAddr[16]=TEXT("");
BYTE * pClientAddr=(BYTE *)&pQueryAccountInfo->dwClientAddr;
_sntprintf_s(szClientAddr,CountArray(szClientAddr),TEXT("%d.%d.%d.%d"),pClientAddr[0],pClientAddr[1],pClientAddr[2],pClientAddr[3]);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@dwUserID"),pQueryAccountInfo->dwUserID);
m_AccountsDBAide.AddParameter(TEXT("@strClientIP"),szClientAddr);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szDescribeString[128]=TEXT("");
m_AccountsDBAide.AddParameterOutput(TEXT("@strErrorDescribe"),szDescribeString,sizeof(szDescribeString),adParamOutput);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_AccountsDBAide.ExecuteProcess(TEXT("GSP_GP_QueryUserAccountInfo"),true)==DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_GP_UserAccountInfo kUserAccountInfo;
ZeroMemory(&kUserAccountInfo,sizeof(kUserAccountInfo));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
kUserAccountInfo.wFaceID=m_AccountsDBAide.GetValue_WORD(TEXT("FaceID"));
kUserAccountInfo.dwUserID=m_AccountsDBAide.GetValue_DWORD(TEXT("UserID"));
kUserAccountInfo.dwGameID=m_AccountsDBAide.GetValue_DWORD(TEXT("GameID"));
kUserAccountInfo.dwCustomID=m_AccountsDBAide.GetValue_DWORD(TEXT("CustomID"));
kUserAccountInfo.dwUserMedal=m_AccountsDBAide.GetValue_DWORD(TEXT("UserMedal"));
kUserAccountInfo.dwExperience=m_AccountsDBAide.GetValue_DWORD(TEXT("Experience"));
kUserAccountInfo.dwLoveLiness=m_AccountsDBAide.GetValue_DWORD(TEXT("LoveLiness"));
kUserAccountInfo.dwSpreaderID=m_AccountsDBAide.GetValue_DWORD(TEXT("SpreaderID"));
m_AccountsDBAide.GetValue_String(TEXT("Accounts"),kUserAccountInfo.szAccounts,CountArray(kUserAccountInfo.szAccounts));
m_AccountsDBAide.GetValue_String(TEXT("NickName"),kUserAccountInfo.szNickName,CountArray(kUserAccountInfo.szNickName));
m_AccountsDBAide.GetValue_String(TEXT("LogonIP"),kUserAccountInfo.szLogonIp,CountArray(kUserAccountInfo.szLogonIp));
//<2F>û<EFBFBD><C3BB>ɼ<EFBFBD>
kUserAccountInfo.lUserScore = (LONG)m_AccountsDBAide.GetValue_DOUBLE(TEXT("Score"));
kUserAccountInfo.lUserInsure = (LONG)m_AccountsDBAide.GetValue_DOUBLE(TEXT("Insure"));
kUserAccountInfo.lGrade = m_AccountsDBAide.GetValue_LONGLONG(TEXT("Grade"));
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
kUserAccountInfo.cbGender=m_AccountsDBAide.GetValue_BYTE(TEXT("Gender"));
kUserAccountInfo.cbMoorMachine=m_AccountsDBAide.GetValue_BYTE(TEXT("MoorMachine"));
m_AccountsDBAide.GetValue_String(TEXT("UnderWrite"),kUserAccountInfo.szUnderWrite,CountArray(kUserAccountInfo.szUnderWrite));
//<2F><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
kUserAccountInfo.cbMemberOrder=m_AccountsDBAide.GetValue_BYTE(TEXT("MemberOrder"));
m_AccountsDBAide.GetValue_SystemTime(TEXT("MemberOverDate"),kUserAccountInfo.MemberOverDate);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_USER_ACCOUNTINFO,dwContextID,&kUserAccountInfo,sizeof(kUserAccountInfo));
}
else
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OnOperateDisposeResult(dwContextID,m_AccountsDBAide.GetReturnValue(),szDescribeString,false);
}
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CTraceService::TraceString(pIException->GetExceptionDescribe(),TraceLevel_Exception);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OnOperateDisposeResult(dwContextID,DB_ERROR,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>"),false);
return false;
}
return true;
}
//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
bool CDataBaseEngineSink::OnRequestQueryIndividual(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(wDataSize==sizeof(DBR_GP_QueryIndividual));
if (wDataSize!=sizeof(DBR_GP_QueryIndividual)) return false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_QueryIndividual * pQueryIndividual=(DBR_GP_QueryIndividual *)pData;
//ת<><D7AA><EFBFBD><EFBFBD>ַ
TCHAR szClientAddr[16]=TEXT("");
BYTE * pClientAddr=(BYTE *)&pQueryIndividual->dwClientAddr;
_sntprintf_s(szClientAddr,CountArray(szClientAddr),TEXT("%d.%d.%d.%d"),pClientAddr[0],pClientAddr[1],pClientAddr[2],pClientAddr[3]);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@dwUserID"),pQueryIndividual->dwUserID);
m_AccountsDBAide.AddParameter(TEXT("@strClientIP"),szClientAddr);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_AccountsDBAide.ExecuteProcess(TEXT("GSP_GP_QueryUserIndividual"),true)==DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_GP_UserIndividual UserIndividual;
ZeroMemory(&UserIndividual,sizeof(UserIndividual));
//<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
UserIndividual.dwUserID=m_AccountsDBAide.GetValue_DWORD(TEXT("UserID"));
m_AccountsDBAide.GetValue_String(TEXT("UserNote"),UserIndividual.szUserNote,CountArray(UserIndividual.szUserNote));
m_AccountsDBAide.GetValue_String(TEXT("Compellation"),UserIndividual.szCompellation,CountArray(UserIndividual.szCompellation));
//<2F><EFBFBD><E7BBB0><EFBFBD><EFBFBD>
m_AccountsDBAide.GetValue_String(TEXT("SeatPhone"),UserIndividual.szSeatPhone,CountArray(UserIndividual.szSeatPhone));
m_AccountsDBAide.GetValue_String(TEXT("MobilePhone"),UserIndividual.szMobilePhone,CountArray(UserIndividual.szMobilePhone));
//<2F><>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>
m_AccountsDBAide.GetValue_String(TEXT("QQ"),UserIndividual.szQQ,CountArray(UserIndividual.szQQ));
m_AccountsDBAide.GetValue_String(TEXT("EMail"),UserIndividual.szEMail,CountArray(UserIndividual.szEMail));
m_AccountsDBAide.GetValue_String(TEXT("DwellingPlace"),UserIndividual.szDwellingPlace,CountArray(UserIndividual.szDwellingPlace));
m_AccountsDBAide.GetValue_String(TEXT("HeadHttp"),UserIndividual.szHeadHttp,CountArray(UserIndividual.szHeadHttp));
m_AccountsDBAide.GetValue_String(TEXT("UserChannel"),UserIndividual.szUserChannel,CountArray(UserIndividual.szUserChannel));
lstrcpyn(UserIndividual.szLogonIP,szClientAddr,CountArray(UserIndividual.szLogonIP));
//<2F><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_USER_INDIVIDUAL,dwContextID,&UserIndividual,sizeof(UserIndividual));
}
else
{
}
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CTraceService::TraceString(pIException->GetExceptionDescribe(),TraceLevel_Exception);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OnOperateDisposeResult(dwContextID,DB_ERROR,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>"),false);
return false;
}
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
bool CDataBaseEngineSink::OnRequestLoadGameList(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wPacketSize=0;
BYTE cbBuffer[MAX_ASYNCHRONISM_DATA];
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_PlatformDBAide.ResetParameter();
m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GP_LoadGameTypeItem"),true);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
wPacketSize=0;
DBO_GP_GameType * pGameType=NULL;
while (m_PlatformDBModule->IsRecordsetEnd()==false)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
if ((wPacketSize+sizeof(DBO_GP_GameType))>sizeof(cbBuffer))
{
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_GAME_TYPE_ITEM,dwContextID,cbBuffer,wPacketSize);
wPacketSize=0;
}
//<2F><>ȡ<EFBFBD><C8A1>Ϣ
pGameType=(DBO_GP_GameType *)(cbBuffer+wPacketSize);
pGameType->wSortID=m_PlatformDBAide.GetValue_WORD(TEXT("SortID"));
pGameType->wJoinID=m_PlatformDBAide.GetValue_WORD(TEXT("JoinID"));
pGameType->wTypeID=m_PlatformDBAide.GetValue_WORD(TEXT("TypeID"));
m_PlatformDBAide.GetValue_String(TEXT("TypeName"),pGameType->szTypeName,CountArray(pGameType->szTypeName));
//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
wPacketSize+=sizeof(DBO_GP_GameType);
//<2F>ƶ<EFBFBD><C6B6><EFBFBD>¼
m_PlatformDBModule->MoveToNext();
}
if (wPacketSize>0) m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_GAME_TYPE_ITEM,dwContextID,cbBuffer,wPacketSize);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
m_PlatformDBAide.ResetParameter();
m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GP_LoadGameKindItem"),true);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
wPacketSize=0;
DBO_GP_GameKind * pGameKind=NULL;
while (m_PlatformDBModule->IsRecordsetEnd()==false)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
if ((wPacketSize+sizeof(DBO_GP_GameKind))>sizeof(cbBuffer))
{
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_GAME_KIND_ITEM,dwContextID,cbBuffer,wPacketSize);
wPacketSize=0;
}
//<2F><>ȡ<EFBFBD><C8A1>Ϣ
pGameKind=(DBO_GP_GameKind *)(cbBuffer+wPacketSize);
pGameKind->wSortID=m_PlatformDBAide.GetValue_WORD(TEXT("SortID"));
pGameKind->wTypeID=m_PlatformDBAide.GetValue_WORD(TEXT("TypeID"));
pGameKind->wJoinID=m_PlatformDBAide.GetValue_WORD(TEXT("JoinID"));
pGameKind->wKindID=m_PlatformDBAide.GetValue_WORD(TEXT("KindID"));
pGameKind->wGameID=m_PlatformDBAide.GetValue_WORD(TEXT("GameID"));
m_PlatformDBAide.GetValue_String(TEXT("KindName"),pGameKind->szKindName,CountArray(pGameKind->szKindName));
m_PlatformDBAide.GetValue_String(TEXT("ProcessName"),pGameKind->szProcessName,CountArray(pGameKind->szProcessName));
//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
wPacketSize+=sizeof(DBO_GP_GameKind);
//<2F>ƶ<EFBFBD><C6B6><EFBFBD>¼
m_PlatformDBModule->MoveToNext();
}
if (wPacketSize>0) m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_GAME_KIND_ITEM,dwContextID,cbBuffer,wPacketSize);
//<2F><>ȡ<EFBFBD>ڵ<EFBFBD>
m_PlatformDBAide.ResetParameter();
m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GP_LoadGameNodeItem"),true);
//<2F><><EFBFBD>ͽڵ<CDBD>
wPacketSize=0;
DBO_GP_GameNode * pGameNode=NULL;
while (m_PlatformDBModule->IsRecordsetEnd()==false)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
if ((wPacketSize+sizeof(DBO_GP_GameNode))>sizeof(cbBuffer))
{
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_GAME_NODE_ITEM,dwContextID,cbBuffer,wPacketSize);
wPacketSize=0;
}
//<2F><>ȡ<EFBFBD><C8A1>Ϣ
pGameNode=(DBO_GP_GameNode *)(cbBuffer+wPacketSize);
pGameNode->wSortID=m_PlatformDBAide.GetValue_WORD(TEXT("SortID"));
pGameNode->wKindID=m_PlatformDBAide.GetValue_WORD(TEXT("KindID"));
pGameNode->wJoinID=m_PlatformDBAide.GetValue_WORD(TEXT("JoinID"));
pGameNode->wNodeID=m_PlatformDBAide.GetValue_WORD(TEXT("NodeID"));
m_PlatformDBAide.GetValue_String(TEXT("NodeName"),pGameNode->szNodeName,CountArray(pGameNode->szNodeName));
//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
wPacketSize+=sizeof(DBO_GP_GameNode);
//<2F>ƶ<EFBFBD><C6B6><EFBFBD>¼
m_PlatformDBModule->MoveToNext();
}
if (wPacketSize>0) m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_GAME_NODE_ITEM,dwContextID,cbBuffer,wPacketSize);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
m_PlatformDBAide.ResetParameter();
m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GP_LoadGamePageItem"),true);
//<2F><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
wPacketSize=0;
DBO_GP_GamePage * pGamePage=NULL;
while (m_PlatformDBModule->IsRecordsetEnd()==false)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
if ((wPacketSize+sizeof(DBO_GP_GamePage))>sizeof(cbBuffer))
{
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_GAME_PAGE_ITEM,dwContextID,cbBuffer,wPacketSize);
wPacketSize=0;
}
//<2F><>ȡ<EFBFBD><C8A1>Ϣ
pGamePage=(DBO_GP_GamePage *)(cbBuffer+wPacketSize);
pGamePage->wKindID=m_PlatformDBAide.GetValue_WORD(TEXT("KindID"));
pGamePage->wNodeID=m_PlatformDBAide.GetValue_WORD(TEXT("NodeID"));
pGamePage->wSortID=m_PlatformDBAide.GetValue_WORD(TEXT("SortID"));
pGamePage->wPageID=m_PlatformDBAide.GetValue_WORD(TEXT("PageID"));
pGamePage->wOperateType=m_PlatformDBAide.GetValue_WORD(TEXT("OperateType"));
m_PlatformDBAide.GetValue_String(TEXT("DisplayName"),pGamePage->szDisplayName,CountArray(pGamePage->szDisplayName));
//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
wPacketSize+=sizeof(DBO_GP_GamePage);
//<2F>ƶ<EFBFBD><C6B6><EFBFBD>¼
m_PlatformDBModule->MoveToNext();
}
if (wPacketSize>0) m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_GAME_PAGE_ITEM,dwContextID,cbBuffer,wPacketSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_GP_GameListResult GameListResult;
ZeroMemory(&GameListResult,sizeof(GameListResult));
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
GameListResult.cbSuccess=TRUE;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_GAME_LIST_RESULT,dwContextID,&GameListResult,sizeof(GameListResult));
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LPCTSTR pszDescribe=pIException->GetExceptionDescribe();
CTraceService::TraceString(pszDescribe,TraceLevel_Exception);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_GP_GameListResult GameListResult;
ZeroMemory(&GameListResult,sizeof(GameListResult));
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
GameListResult.cbSuccess=FALSE;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_GAME_LIST_RESULT,dwContextID,&GameListResult,sizeof(GameListResult));
return false;
}
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
bool CDataBaseEngineSink::OnRequestOnLineCountInfo(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_OnLineCountInfo * pOnLineCountInfo=(DBR_GP_OnLineCountInfo *)pData;
WORD wHeadSize=(sizeof(DBR_GP_OnLineCountInfo)-sizeof(pOnLineCountInfo->OnLineCountKind));
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT((wDataSize>=wHeadSize)&&(wDataSize==(wHeadSize+pOnLineCountInfo->wKindCount*sizeof(tagOnLineInfoKind))));
if ((wDataSize<wHeadSize)||(wDataSize!=(wHeadSize+pOnLineCountInfo->wKindCount*sizeof(tagOnLineInfoKind)))) return false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
TCHAR szMachineID[LEN_MACHINE_ID];
CWHService::GetMachineID(szMachineID);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
TCHAR szOnLineCountKind[2048]=TEXT("");
for (WORD i=0;i<pOnLineCountInfo->wKindCount;i++)
{
INT nLength=lstrlen(szOnLineCountKind);
_sntprintf_s(&szOnLineCountKind[nLength],CountArray(szOnLineCountKind)-nLength, 20, TEXT("%d:%ld;"),pOnLineCountInfo->OnLineCountKind[i].wKindID,
pOnLineCountInfo->OnLineCountKind[i].dwOnLineCount);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_PlatformDBAide.ResetParameter();
m_PlatformDBAide.AddParameter(TEXT("@strMachineID"),szMachineID);
m_PlatformDBAide.AddParameter(TEXT("@strMachineServer"),m_pInitParameter->m_szServerName);
m_PlatformDBAide.AddParameter(TEXT("@dwOnLineCountSum"),pOnLineCountInfo->dwOnLineCountSum);
m_PlatformDBAide.AddParameter(TEXT("@strOnLineCountKind"),szOnLineCountKind);
//ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GP_OnLineCountInfo"),false);
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CTraceService::TraceString(pIException->GetExceptionDescribe(),TraceLevel_Exception);
return false;
}
return true;
}
//<2F><>Ϸ<EFBFBD><CFB7>¼
bool CDataBaseEngineSink::OnRequestGameRecordList(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_GameRecordList * pNetInfo = (DBR_GP_GameRecordList *)pData;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_TreasureDBAide.ResetParameter();
m_TreasureDBAide.AddParameter(TEXT("@dwUserID"),pNetInfo->dwUserID);
m_TreasureDBAide.AddParameter(TEXT("@wKindID"), pNetInfo->wKindID);
//ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_GameRecord_List_RecordID"),true);
//ִ<>гɹ<D0B3>
if(lResultCode==DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>
tagPrivateRandTotalRecordList kGameRecordList;
kGameRecordList.dwUserID = pNetInfo->dwUserID;
std::vector<int> kRecordID;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
while(m_TreasureDBModule->IsRecordsetEnd()==false)
{
kRecordID.push_back(m_TreasureDBAide.GetValue_DWORD(TEXT("RecordID")));
m_TreasureDBModule->MoveToNext();
}
for (int i = 0;i<(int)kRecordID.size();i++)
{
m_TreasureDBAide.ResetParameter();
m_TreasureDBAide.AddParameter(TEXT("@dwRecordID"),kRecordID[i]);
LONG lTempResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_PrivateGameRecord"),true);
if (lTempResultCode == DB_SUCCESS)
{
if ((m_TreasureDBModule->IsRecordsetEnd() == false))
{
DataStream kTempData;
m_TreasureDBAide.GetParameter(TEXT("UserDate"), kTempData);
tagPrivateRandTotalRecord kTotalRecord;
kTotalRecord.StreamValue(kTempData, false);
kTotalRecord.iRecordID = kRecordID[i];
kGameRecordList.kList.push_back(kTotalRecord);
}
}
}
DataStream kDataStream;
kGameRecordList.StreamValue(kDataStream,true);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_GAME_RECORD_LIST,dwContextID,&kDataStream[0],kDataStream.size());
}
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CTraceService::TraceString(pIException->GetExceptionDescribe(),TraceLevel_Exception);
return false;
}
}
//<2F><>Ϸ<EFBFBD>ط<EFBFBD>
bool CDataBaseEngineSink::OnRequestGameTotalRecord(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_GetGameTotalRecord * pNetInfo = (DBR_GP_GetGameTotalRecord *)pData;
tagPrivateRandTotalRecord kTotalRecord;
m_TreasureDBAide.ResetParameter();
m_TreasureDBAide.AddParameter(TEXT("@dwRecordID"),pNetInfo->dwRecordID);
LONG lTempCode1 = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_PrivateGameRecord"),true);
if (lTempCode1 == DB_SUCCESS)
{
DataStream kTempData;
m_TreasureDBAide.GetParameter(TEXT("UserDate"),kTempData);
kTotalRecord.StreamValue(kTempData,false);
}
m_TreasureDBAide.ResetParameter();
m_TreasureDBAide.AddParameter(TEXT("@dwRecordID"),pNetInfo->dwRecordID);
//ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LONG lResultCode2 = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_PrivateGameRecord_Child"),true);
if(lResultCode2==DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
while(m_TreasureDBModule->IsRecordsetEnd()==false)
{
//DWORD RecordChildID = m_TreasureDBAide.GetValue_DWORD(TEXT("RecordChildID"));
//DataStream kDataStream;
//m_TreasureDBAide.GetParameter(TEXT("UserDate"), kDataStream);
//tagPrivateRandRecordChild kRecordChild;
//kRecordChild.StreamValue(kDataStream, false);
tagPrivateRandRecordChild kRecordChild;
kRecordChild.iRecordChildID = m_TreasureDBAide.GetValue_DWORD(TEXT("RecordChildID"));
TCHAR szUserScore[64] = {};
m_TreasureDBAide.GetValue_String(TEXT("UserScore"), szUserScore, CountArray(szUserScore));
m_TreasureDBAide.GetValue_SystemTime(TEXT("InsertTime"), kRecordChild.kPlayTime);
kRecordChild.kUserDefine = szUserScore;
kTotalRecord.kRecordChild.push_back(kRecordChild);
m_TreasureDBModule->MoveToNext();
}
DataStream kDataStream;
kTotalRecord.StreamValue(kDataStream,true);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_GAME_RECORD_TOTAL,dwContextID,&kDataStream[0],kDataStream.size());
}
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CTraceService::TraceString(pIException->GetExceptionDescribe(),TraceLevel_Exception);
return false;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ
bool CDataBaseEngineSink::OnRequestGameChildRecord(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_GetGameTotalRecord * pNetInfo = (DBR_GP_GetGameTotalRecord *)pData;
m_TreasureDBAide.ResetParameter();
m_TreasureDBAide.AddParameter(TEXT("@dwRecordChildID"), pNetInfo->dwRecordID);
//ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LONG lResultCode2 = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_PrivateGameRecordByChildID"), true);
if (lResultCode2 == DB_SUCCESS)
{
if (m_TreasureDBModule->IsRecordsetEnd() == false)
{
DWORD RecordChildID = m_TreasureDBAide.GetValue_DWORD(TEXT("RecordChildID"));
DataStream kDataStream;
m_TreasureDBAide.GetParameter(TEXT("UserDate"), kDataStream);
tagPrivateRandRecordChild kRecordChild;
kRecordChild.StreamValue(kDataStream, false);
kRecordChild.iRecordChildID = RecordChildID;
DataStream kSendData;
kRecordChild.StreamValue(kSendData, true);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_GAME_RECORD_CHILD, dwContextID, &kSendData[0], kSendData.size());
}
}
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
return false;
}
}
//<2F><>¼<EFBFBD>ɹ<EFBFBD>
VOID CDataBaseEngineSink::OnLogonDisposeResult(DWORD dwContextID, DWORD dwErrorCode, LPCTSTR pszErrorString, bool bMobileClient)
{
if (bMobileClient==false)
{
if (dwErrorCode==DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_GP_LogonSuccess LogonSuccess;
ZeroMemory(&LogonSuccess,sizeof(LogonSuccess));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LogonSuccess.wFaceID=0;
LogonSuccess.dwUserID=m_AccountsDBAide.GetValue_DWORD(TEXT("UserID"));
LogonSuccess.dwGameID=m_AccountsDBAide.GetValue_DWORD(TEXT("GameID"));
LogonSuccess.dwCustomID=m_AccountsDBAide.GetValue_DWORD(TEXT("CustomID"));
LogonSuccess.dwUserMedal=m_AccountsDBAide.GetValue_DWORD(TEXT("UserMedal"));
LogonSuccess.dwExperience=m_AccountsDBAide.GetValue_DWORD(TEXT("Experience"));
LogonSuccess.dwLoveLiness=m_AccountsDBAide.GetValue_DWORD(TEXT("LoveLiness"));
LogonSuccess.dwSpreaderID=m_AccountsDBAide.GetValue_DWORD(TEXT("SpreaderID"));
LogonSuccess.cbInsureEnabled=m_AccountsDBAide.GetValue_BYTE(TEXT("InsureEnabled"));
LogonSuccess.cbWXShareTimes = m_AccountsDBAide.GetValue_BYTE(TEXT("WXShareTimes"));
m_AccountsDBAide.GetValue_String(TEXT("Accounts"),LogonSuccess.szAccounts,CountArray(LogonSuccess.szAccounts));
m_AccountsDBAide.GetValue_String(TEXT("NickName"),LogonSuccess.szNickName,CountArray(LogonSuccess.szNickName));
//<2F>û<EFBFBD><C3BB>ɼ<EFBFBD>
LogonSuccess.lUserScore = (LONG)m_AccountsDBAide.GetValue_DOUBLE(TEXT("Score"));
LogonSuccess.lUserInsure = (LONG)m_AccountsDBAide.GetValue_DOUBLE(TEXT("Insure"));
LogonSuccess.lGrade = m_AccountsDBAide.GetValue_LONGLONG(TEXT("Grade"));
BYTE cbLottery = m_AccountsDBAide.GetValue_BYTE(TEXT("isLottery"));
LogonSuccess.isLottery = (cbLottery>0) ? true : false;
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
LogonSuccess.cbGender=m_AccountsDBAide.GetValue_BYTE(TEXT("Gender"));
LogonSuccess.cbMoorMachine=m_AccountsDBAide.GetValue_BYTE(TEXT("MoorMachine"));
m_AccountsDBAide.GetValue_String(TEXT("UnderWrite"),LogonSuccess.szUnderWrite,CountArray(LogonSuccess.szUnderWrite));
//<2F><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
LogonSuccess.cbMemberOrder=m_AccountsDBAide.GetValue_BYTE(TEXT("MemberOrder"));
m_AccountsDBAide.GetValue_SystemTime(TEXT("MemberOverDate"),LogonSuccess.MemberOverDate);
//<2F><>ȡ<EFBFBD><C8A1>Ϣ
lstrcpyn(LogonSuccess.szDescribeString,pszErrorString,CountArray(LogonSuccess.szDescribeString));
//try
//{
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// m_PlatformDBAide.ResetParameter();
// m_PlatformDBAide.AddParameter(TEXT("@dwUserID"),LogonSuccess.dwUserID);
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// TCHAR szDescribeString[128]=TEXT("");
// m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"),szDescribeString,sizeof(szDescribeString),adParamOutput);
// //ִ<>в<EFBFBD>ѯ
// LONG lResultCode=m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GS_LoadMatchSignupList"),true);
// if(lResultCode==DB_SUCCESS)
// {
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// tagSignupMatchInfo * pSignupMatchInfo=NULL;
// while (m_PlatformDBModule->IsRecordsetEnd()==false)
// {
// //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
// if(LogonSuccess.wSignupCount>=CountArray(LogonSuccess.SignupMatchInfo)) break;
// //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
// pSignupMatchInfo=&LogonSuccess.SignupMatchInfo[LogonSuccess.wSignupCount++];
// //<2F><>ȡ<EFBFBD><C8A1>¼
// pSignupMatchInfo->wServerID=m_PlatformDBAide.GetValue_WORD(TEXT("ServerID"));
// pSignupMatchInfo->dwMatchID=m_PlatformDBAide.GetValue_DWORD(TEXT("MatchID"));
// pSignupMatchInfo->dwMatchNO=m_PlatformDBAide.GetValue_DWORD(TEXT("MatchNo"));
// //<2F>ƶ<EFBFBD><C6B6><EFBFBD>¼
// m_PlatformDBModule->MoveToNext();
// }
// }
//}
//catch(...)
//{
// ASSERT(FALSE);
//};
//<2F><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
WORD wDataSize=CountStringBuffer(LogonSuccess.szDescribeString);
WORD wHeadSize=sizeof(LogonSuccess)-sizeof(LogonSuccess.szDescribeString);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_LOGON_SUCCESS,dwContextID,&LogonSuccess,wHeadSize+wDataSize);
}
else if(dwErrorCode == DB_NEEDMB)
{
//<2F><>¼<EFBFBD>ɹ<EFBFBD>
DBR_GP_ValidateMBCard ValidateMBCard;
ZeroMemory(&ValidateMBCard,sizeof(ValidateMBCard));
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
ValidateMBCard.uMBCardID=m_AccountsDBAide.GetValue_UINT(TEXT("PasswordID"));
//Ͷ<>ݽ<EFBFBD><DDBD><EFBFBD>
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_VALIDATE_MBCARD,dwContextID,&ValidateMBCard,sizeof(ValidateMBCard));
}
else
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_GP_LogonFailure LogonFailure;
ZeroMemory(&LogonFailure,sizeof(LogonFailure));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LogonFailure.lResultCode=dwErrorCode;
lstrcpyn(LogonFailure.szDescribeString,pszErrorString,CountArray(LogonFailure.szDescribeString));
//<2F><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
WORD wDataSize=CountStringBuffer(LogonFailure.szDescribeString);
WORD wHeadSize=sizeof(LogonFailure)-sizeof(LogonFailure.szDescribeString);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_LOGON_FAILURE,dwContextID,&LogonFailure,wHeadSize+wDataSize);
}
}
else
{
if (dwErrorCode==DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_MB_LogonSuccess LogonSuccess;
ZeroMemory(&LogonSuccess,sizeof(LogonSuccess));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LogonSuccess.wFaceID=m_AccountsDBAide.GetValue_WORD(TEXT("FaceID"));
LogonSuccess.cbGender=m_AccountsDBAide.GetValue_BYTE(TEXT("Gender"));
LogonSuccess.dwUserID=m_AccountsDBAide.GetValue_DWORD(TEXT("UserID"));
LogonSuccess.dwGameID=m_AccountsDBAide.GetValue_DWORD(TEXT("GameID"));
LogonSuccess.dwExperience=m_AccountsDBAide.GetValue_DWORD(TEXT("Experience"));
LogonSuccess.dwLoveLiness=m_AccountsDBAide.GetValue_DWORD(TEXT("LoveLiness"));
m_AccountsDBAide.GetValue_String(TEXT("NickName"),LogonSuccess.szNickName,CountArray(LogonSuccess.szNickName));
//<2F><>ȡ<EFBFBD><C8A1>Ϣ
lstrcpyn(LogonSuccess.szDescribeString,pszErrorString,CountArray(LogonSuccess.szDescribeString));
//<2F><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
WORD wDataSize=CountStringBuffer(LogonSuccess.szDescribeString);
WORD wHeadSize=sizeof(LogonSuccess)-sizeof(LogonSuccess.szDescribeString);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_MB_LOGON_SUCCESS,dwContextID,&LogonSuccess,wHeadSize+wDataSize);
}
else
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_MB_LogonFailure LogonFailure;
ZeroMemory(&LogonFailure,sizeof(LogonFailure));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LogonFailure.lResultCode=dwErrorCode;
lstrcpyn(LogonFailure.szDescribeString,pszErrorString,CountArray(LogonFailure.szDescribeString));
//<2F><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
WORD wDataSize=CountStringBuffer(LogonFailure.szDescribeString);
WORD wHeadSize=sizeof(LogonFailure)-sizeof(LogonFailure.szDescribeString);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_MB_LOGON_FAILURE,dwContextID,&LogonFailure,wHeadSize+wDataSize);
}
}
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID CDataBaseEngineSink::OnOperateDisposeResult(DWORD dwContextID, DWORD dwErrorCode, LPCTSTR pszErrorString, bool bMobileClient)
{
if (dwErrorCode==DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_GP_OperateSuccess OperateSuccess;
ZeroMemory(&OperateSuccess,sizeof(OperateSuccess));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OperateSuccess.lResultCode=dwErrorCode;
lstrcpyn(OperateSuccess.szDescribeString,pszErrorString,CountArray(OperateSuccess.szDescribeString));
//<2F><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
WORD wDataSize=CountStringBuffer(OperateSuccess.szDescribeString);
WORD wHeadSize=sizeof(OperateSuccess)-sizeof(OperateSuccess.szDescribeString);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_OPERATE_SUCCESS,dwContextID,&OperateSuccess,wHeadSize+wDataSize);
}
else
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBO_GP_OperateFailure OperateFailure;
ZeroMemory(&OperateFailure,sizeof(OperateFailure));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OperateFailure.lResultCode=dwErrorCode;
lstrcpyn(OperateFailure.szDescribeString,pszErrorString,CountArray(OperateFailure.szDescribeString));
//<2F><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
WORD wDataSize=CountStringBuffer(OperateFailure.szDescribeString);
WORD wHeadSize=sizeof(OperateFailure)-sizeof(OperateFailure.szDescribeString);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_OPERATE_FAILURE,dwContextID,&OperateFailure,wHeadSize+wDataSize);
}
return;
}
bool CDataBaseEngineSink::OnRequestQueryInMatch(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_QueryInMatch * pNetInfo = (DBR_GP_QueryInMatch *)pData;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_PlatformDBAide.ResetParameter();
m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), pNetInfo->dwUserID);
//ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GP_QueryInMatch"), true);
//ִ<>гɹ<D0B3>
if (lResultCode == DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>ṹ;
tagQueryInMatch kInMatch;
memset(&kInMatch, 0, sizeof(kInMatch));
kInMatch.dwUserID = pNetInfo->dwUserID;
kInMatch.cbListNum = 0;
int nMaxList = sizeof(kInMatch.dwServerIDLists) / sizeof(kInMatch.dwServerIDLists[0]);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
while (m_PlatformDBModule->IsRecordsetEnd() == false)
{
if (kInMatch.cbListNum >= nMaxList)
{ //ҪԽ<D2AA><D4BD><EFBFBD><EFBFBD>;
break;
}
kInMatch.dwServerIDLists[kInMatch.cbListNum] = m_PlatformDBAide.GetValue_DWORD(TEXT("ServerID"));
kInMatch.cbServerIDStatus[kInMatch.cbListNum] = (BYTE)m_PlatformDBAide.GetValue_DWORD(TEXT("SignupFlag"));
kInMatch.cbListNum++;
m_PlatformDBModule->MoveToNext();
}
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_QueryInMatch, dwContextID, &kInMatch, sizeof(kInMatch));
}
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
return false;
}
}
bool CDataBaseEngineSink::OnRequestQueryInUnion(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_UserInUnion * pNetInfo = (DBR_GP_UserInUnion *)pData;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_TreasureDBAide.ResetParameter();
TCHAR szDescribeString[128]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
ZeroMemory(szDescribeString, CountArray(szDescribeString));
m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pNetInfo->dwUserID);
m_TreasureDBAide.AddParameter(TEXT("@dwUnionCode"), pNetInfo->dwUnionCode);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
//ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_QueryInUnion"), true);
//ִ<>гɹ<D0B3>
if (lResultCode != DB_SUCCESS)
{
CDBVarValue DBVarValue;
m_TreasureDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), CountArray(szDescribeString));
}
DBO_GP_InUnion inUnion;
ZeroMemory(&inUnion, sizeof(DBO_GP_InUnion));
inUnion.cbResultCode = lResultCode;
inUnion.dwUnionCode = pNetInfo->dwUnionCode;
lstrcpyn(inUnion.szDescribeString, szDescribeString, CountArray(szDescribeString));
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_QueryInUnion, dwContextID, &inUnion, sizeof(DBO_GP_InUnion));
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
return false;
}
}
bool CDataBaseEngineSink::OnRequestGetUnionList(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_GetUnionList * pNetInfo = (DBR_GP_GetUnionList *)pData;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_TreasureDBAide.ResetParameter();
TCHAR szDescribeString[128]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
ZeroMemory(szDescribeString, CountArray(szDescribeString));
m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pNetInfo->dwUserID);
//ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_GetUnionList"), true);
//ִ<>гɹ<D0B3>
if (lResultCode == DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tagUnionAndGameList kUnionAndGameList;
while (m_TreasureDBModule->IsRecordsetEnd() == false)
{
tagUnionItem unionItem;
ZeroMemory(&unionItem, sizeof(tagUnionItem));
unionItem.dwUserID = m_TreasureDBAide.GetValue_DWORD(TEXT("UserID"));
unionItem.dwUnionCode = m_TreasureDBAide.GetValue_DWORD(TEXT("UnionCode"));
unionItem.cbUnionGoldOpen = m_TreasureDBAide.GetValue_BYTE(TEXT("UnionGoldOpen"));
unionItem.cbUnionOpen = m_TreasureDBAide.GetValue_BYTE(TEXT("UnionOpen"));
unionItem.lPeople = (SCORE)m_TreasureDBAide.GetValue_DWORD(TEXT("People"));
unionItem.lUnionCard = (SCORE)m_TreasureDBAide.GetValue_DWORD(TEXT("UnionCard"));
m_TreasureDBAide.GetValue_String(TEXT("UnionName"), unionItem.szUnionName, CountArray(unionItem.szUnionName));
kUnionAndGameList.kUnionList.push_back(unionItem);
m_TreasureDBModule->MoveToNext();
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD>б<EFBFBD>;
DataStream kListDataStream;
kUnionAndGameList.StreamValue(kListDataStream, true);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_UnionList, dwContextID, &kListDataStream[0], kListDataStream.size());
}
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
return false;
}
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>᷿<EFBFBD><E1B7BF><EFBFBD>б<EFBFBD>;
bool CDataBaseEngineSink::OnRequestGetUnionRoomList(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_GetUnionRoomList * pNetInfo = (DBR_GP_GetUnionRoomList *)pData;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_TreasureDBAide.ResetParameter();
m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pNetInfo->dwUserID);
m_TreasureDBAide.AddParameter(TEXT("@dwUnionCode"), pNetInfo->dwUnionCode);
//ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_GetUnionRoomList_PlayCout_Score"), true);
//ִ<>гɹ<D0B3>
if (lResultCode == DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tagRoomItemList kUnionRoomList;
while (m_TreasureDBModule->IsRecordsetEnd() == false)
{
tagRoomItem unionRoomItem;
ZeroMemory(&unionRoomItem, sizeof(tagRoomItem));
unionRoomItem.wKindID = m_TreasureDBAide.GetValue_WORD(TEXT("KindID"));
unionRoomItem.dwUnionCode = m_TreasureDBAide.GetValue_DWORD(TEXT("UnionCode"));
unionRoomItem.cbUnionGoldOpen = m_TreasureDBAide.GetValue_BYTE(TEXT("UnionGoldOpen"));
unionRoomItem.dwRoomID = m_TreasureDBAide.GetValue_DWORD(TEXT("RoomID"));
unionRoomItem.dwGameRule = m_TreasureDBAide.GetValue_DWORD(TEXT("GameRule"));
unionRoomItem.cbPlayCout = m_TreasureDBAide.GetValue_BYTE(TEXT("PlayCout"));
unionRoomItem.cbPlayCoutIdex = m_TreasureDBAide.GetValue_BYTE(TEXT("PlayCoutIdex"));
unionRoomItem.cbGameOK = m_TreasureDBAide.GetValue_BYTE(TEXT("GameOK"));
unionRoomItem.cbBaseScore = m_TreasureDBAide.GetValue_BYTE(TEXT("BaseScore"));
unionRoomItem.dwUserIDs[0] = m_TreasureDBAide.GetValue_DWORD(TEXT("UserIDa"));
unionRoomItem.dwUserIDs[1] = m_TreasureDBAide.GetValue_DWORD(TEXT("UserIDb"));
unionRoomItem.dwUserIDs[2] = m_TreasureDBAide.GetValue_DWORD(TEXT("UserIDc"));
unionRoomItem.dwUserIDs[3] = m_TreasureDBAide.GetValue_DWORD(TEXT("UserIDd"));
unionRoomItem.dwUserIDs[4] = m_TreasureDBAide.GetValue_DWORD(TEXT("UserIDe"));
m_TreasureDBAide.GetValue_SystemTime(TEXT("InsertTime"), unionRoomItem.InsertTime);
m_TreasureDBAide.GetValue_String(TEXT("UnionName"), unionRoomItem.szUnionName, CountArray(unionRoomItem.szUnionName));
kUnionRoomList.kList.push_back(unionRoomItem);
m_TreasureDBModule->MoveToNext();
}
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
m_TreasureDBAide.ResetParameter();
m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pNetInfo->dwUserID);
m_TreasureDBAide.AddParameter(TEXT("@dwUnionCode"), pNetInfo->dwUnionCode);
LONG lPlayResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_GetPlayingCount"), true);
if (DB_SUCCESS == lPlayResultCode)
{
kUnionRoomList.cbPlayRoomCount = m_TreasureDBAide.GetValue_BYTE(TEXT("play"));
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD>б<EFBFBD>;
DataStream kListDataStream;
kUnionRoomList.StreamValue(kListDataStream, true);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_UnionRoomList, dwContextID, &kListDataStream[0], kListDataStream.size());
}
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
}
return false;
}
//<2F><>ȡ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>;
bool CDataBaseEngineSink::OnRequestGetAutoRoomList(DWORD dwContextID, VOID * pData, WORD wDataSize)
{
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBR_GP_GetAutoRoomList * pNetInfo = (DBR_GP_GetAutoRoomList *)pData;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_PlatformDBAide.ResetParameter();
TCHAR szDescribeString[128]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
ZeroMemory(szDescribeString, CountArray(szDescribeString));
m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), pNetInfo->dwUserID);
m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
//ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GP_GetAutoRoomList"), true);
//ִ<>гɹ<D0B3>
if (lResultCode == DB_SUCCESS)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tagAutoRoomItemList kAutoRoomList;
while (m_PlatformDBModule->IsRecordsetEnd() == false)
{
tagAutoRoomItem autoRoomItem;
ZeroMemory(&autoRoomItem, sizeof(tagAutoRoomItem));
autoRoomItem.dwIndex = m_PlatformDBAide.GetValue_DWORD(TEXT("id"));
autoRoomItem.wKindID = m_PlatformDBAide.GetValue_WORD(TEXT("KindID"));
autoRoomItem.wServerID = m_PlatformDBAide.GetValue_WORD(TEXT("ServerID"));
autoRoomItem.dwUnionCode = m_PlatformDBAide.GetValue_DWORD(TEXT("UnionCode"));
autoRoomItem.cbUnionGoldOpen = m_PlatformDBAide.GetValue_BYTE(TEXT("UnionGoldOpen"));
autoRoomItem.dwGameRule = m_PlatformDBAide.GetValue_DWORD(TEXT("GameRuleIdex"));
autoRoomItem.cbPlayCoutIdex = m_PlatformDBAide.GetValue_BYTE(TEXT("PlayCoutIdex"));
autoRoomItem.cbPlayCout = m_PlatformDBAide.GetValue_BYTE(TEXT("PlayCout"));
autoRoomItem.cbBaseScore = m_PlatformDBAide.GetValue_BYTE(TEXT("BaseScore"));
m_PlatformDBAide.GetValue_String(TEXT("UnionName"), autoRoomItem.szUnionName, CountArray(autoRoomItem.szUnionName));
SYSTEMTIME stCreateTime;
m_PlatformDBAide.GetValue_SystemTime(TEXT("CreateTime"), stCreateTime);
sprintf_s(autoRoomItem.szCreateTime, "%04d-%02d-%02d %02d:%02d", stCreateTime.wYear, stCreateTime.wMonth, stCreateTime.wDay, stCreateTime.wHour, stCreateTime.wMinute);
kAutoRoomList.kList.push_back(autoRoomItem);
m_PlatformDBModule->MoveToNext();
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD>б<EFBFBD>;
DataStream kListDataStream;
kAutoRoomList.StreamValue(kListDataStream, true);
m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_AutoRoomList, dwContextID, &kListDataStream[0], kListDataStream.size());
}
return true;
}
catch (IDataBaseException * pIException)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
}
return false;
}
//////////////////////////////////////////////////////////////////////////////////