BOOL CArena::SaveToDatabase( void ) { CQuery* pQuery = new CQuery; if( pQuery->Connect( 3, "Character01", "", "" ) == FALSE ) { pQuery->DisConnect(); SAFE_DELETE( pQuery ); return FALSE; } for( map<u_long, ARENAPLAYER>::iterator it = m_mArenaMap.begin(); it != m_mArenaMap.end(); ++it ) { if( it->second.bUpdate == FALSE ) //nothing has changed, please don't Query me! continue; it->second.bUpdate = FALSE; CString strExecUpdate; strExecUpdate.Format( "UPDATE dbo.ARENA SET " "m_idPlayer = %u, " "m_nKill = %u, " "m_nDeath = %u, " "m_nRow = %u, " "m_nJob = %u, " "m_nDeathMatchWin = %u, " "m_nDeathMatchLose = %u, " "m_nDuelWin = %u, " "m_nDuelLose = %u, " "m_nArenaPoint = %I64u, " "m_szName = '%s' " "WHERE m_idPlayer = %u", it->first, it->second.nKill, it->second.nDeath, it->second.nRow, it->second.nJob, it->second.nDeathMatchWin, it->second.nDeathMatchLose, it->second.nDuelWin, it->second.nDuelLose, it->second.n64ArenaPoint, it->second.szName, it->first ); if( pQuery->Exec( strExecUpdate ) == FALSE ) { Error( "---------- Start of Arena Save Error --------" ); Error( "CArena --> Save Database Player." ); Error( "User ID:%u --> Kills:%u --> Death:%u ---> Row:%u", it->first, it->second.nKill, it->second.nDeath, it->second.nRow ); Error( "Query: --> %s", strExecUpdate ); Error( "---------- End of Arena Save Error --------" ); } pQuery->Clear(); } pQuery->DisConnect(); SAFE_DELETE( pQuery ); return TRUE; }
BOOL CArena::AddToDatabase( u_long idPlayer, CString szName, u_int nJob ) { CQuery* pQuery = new CQuery; if( pQuery->Connect( 3, "Character01", "", "" ) == FALSE ) { pQuery->DisConnect(); SAFE_DELETE( pQuery ); return FALSE; } CString szDatabaseAdd; szDatabaseAdd.Format( "INSERT INTO dbo.ARENA values(%u," //idPlayer "0,"//nKill "0,"//nDeath "0,"//nRow "%u,"//nJob "0,"//nDeathmatchWin "0,"//nDeathMatchLose "0,"//nDuelWin "0,"//nDuelLose "0,"//n64ArenaPoint "'%s')", /*szName*/ idPlayer, nJob, szName ); //Error( szDatabaseAdd ); /* ar << it->second.nKill; ar << it->second.nDeath; ar << it->second.nRow; ar << it->second.nJob; ar << it->second.nDeathMatchWin; ar << it->second.nDeathMatchLose; ar << it->second.nDuelWin; ar << it->second.nDuelLose; ar << it->second.n64ArenaPoint; */ if( pQuery->Exec( szDatabaseAdd ) == FALSE ) { Error( "------- Start of CArena::AddToDatabase -------" ); Error( "Error Inserting User. Query ---> %s", szDatabaseAdd ); Error( "--------- End of CArena::AddToDatabase -------" ); pQuery->DisConnect(); SAFE_DELETE( pQuery ); return FALSE; } pQuery->DisConnect(); SAFE_DELETE( pQuery ); return TRUE; }
//--------------------Database Operations---------------------- BOOL CArena::Load( void ) { CQuery* pQuery = new CQuery; if( pQuery->Connect( 3, "Character01", "", "" ) == FALSE ) { pQuery->DisConnect(); SAFE_DELETE( pQuery ); return FALSE; } if( pQuery->Exec( "SELECT * FROM dbo.ARENA" ) == FALSE ) { pQuery->DisConnect(); SAFE_DELETE( pQuery ); return FALSE; } while( pQuery->Fetch() ) { char szQryName[MAX_NAME] = { 0, }; ARENAPLAYER dbPlayer; u_long idPlayer = static_cast<u_long>( pQuery->GetInt64( "m_idPlayer" ) ); dbPlayer.nKill = static_cast<u_int>( pQuery->GetInt64( "m_nKill" ) ); dbPlayer.nDeath = static_cast<u_int>( pQuery->GetInt64( "m_nDeath" ) ); dbPlayer.nRow = static_cast<u_int>( pQuery->GetInt64( "m_nRow" ) ); dbPlayer.nJob = static_cast<u_int>( pQuery->GetInt64( "m_nJob" ) ); dbPlayer.nDeathMatchWin = static_cast<u_int>( pQuery->GetInt64( "m_nDeathMatchWin" ) ); dbPlayer.nDeathMatchLose = static_cast<u_int>( pQuery->GetInt64( "m_nDeathMatchLose" ) ); dbPlayer.nDuelWin = static_cast<u_int>( pQuery->GetInt64( "m_nDuelWin" ) ); dbPlayer.nDuelLose = static_cast<u_int>( pQuery->GetInt64( "m_nDuelLose" ) ); dbPlayer.n64ArenaPoint = pQuery->GetInt64( "m_nArenaPoint" ); pQuery->GetStr( "m_szName", szQryName ); dbPlayer.szName = CString( szQryName ); m_mArenaMap.insert( make_pair( idPlayer, dbPlayer ) ); } pQuery->DisConnect(); SAFE_DELETE( pQuery ); return TRUE; }