⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tsodbc.cpp

📁 Soul的源代码,类似于劲舞团之类的游戏
💻 CPP
📖 第 1 页 / 共 4 页
字号:
			return FALSE;
	}
	else
	{
		PrintError( m_hStmtInsert, NULL );
		if( !ReconnectODBC() ) 
		{// 汲沥 角菩

		}
		return FALSE;
	}


	return m_iOutPutValue;

}
//-------------------------------------------------------------------------------------------------------
//	Name		 :: BOOL GetItemInfo( SQLHSTMT hStmt, void *pData, void *pSource, int isize )
//	Create Date	 :: 2004/10/29
//	Description	 :: Item甸狼 沥焊甫 罐酒柯促
//	param		 :: 
//	Return Value :: 
//	Bug	Report	 ::
//-------------------------------------------------------------------------------------------------------
BOOL TsODBC::GetItemInfo( SQLHSTMT hStmt, void *pData, void *pSource, int isize )
{
	int ret = SQLExecute( hStmt );
	if( ret != SQL_SUCCESS )
	{
		PrintError( hStmt, NULL );
		SQLCloseCursor( hStmt );
		if( !ReconnectODBC() ) 
		{// 汲沥 角菩

		}
		return FALSE;
	}
	if( SQLFetch(hStmt) == SQL_NO_DATA )
	{
		PrintError( hStmt, NULL );
		SQLCloseCursor( hStmt );
		return FALSE;
	}
	if( isize ) memcpy( pData, pSource, isize );
	SQLCloseCursor( hStmt );
	return TRUE;
}
//-------------------------------------------------------------------------------------------------------
//	Name		 :: BOOL OpenCharInfo( int iAccountID, CHAR_EQUIP_INFO *pCharDetail_Info )
//	Create Date	 :: 2004/10/29
//	Description	 :: charinfo select, Equip select (纳腐磐 辑滚狼 夸没俊 狼秦 秦寸 拌沥狼 葛电 拌沥甸)
//	param		 :: 
//	Return Value :: 
//	Bug	Report	 ::
//-------------------------------------------------------------------------------------------------------
BOOL TsODBC::OpenCharInfo( int iAccountID, CHAR_EQUIP_INFO *pCharDetail_Info )
{
	int ret,i;
	int icount = 0;
	m_info.m_CharInfo._iAccountID = iAccountID;

	CLock lock( &m_cs );
	m_dwLastTick = GetTickCount();

	ret = SQLExecute( m_hStmtCharInfoSt );
	if( ret == SQL_SUCCESS )
	{
		while( SQLFetch(m_hStmtCharInfoSt) != SQL_NO_DATA ) 
		{
			memcpy( &pCharDetail_Info[icount]._CharInfo, &m_info.m_CharInfo, sizeof( m_info.m_CharInfo ) );
			for ( i = 0 ; i <= 18; i++) 
			{
				if (pCharDetail_Info[icount]._CharInfo._charName[i] == 32) 
				{
					pCharDetail_Info[icount]._CharInfo._charName[i] = 0x00;
					break;
				}
			}
			icount++;
		}
		SQLCloseCursor( m_hStmtCharInfoSt );
		if( !icount ) return FALSE;
		
		for( i = 0; i < icount; i++ )
		{
			m_info.m_CharInfo._iCharIndex = pCharDetail_Info[i]._CharInfo._iCharIndex;
			if( !GetItemInfo( m_hStmtEquipSt, &pCharDetail_Info[i]._EquipItem, &m_info.strEquipItem, EQUEP_SIZE ) ) return FALSE;
		}
	}
	else
	{
		PrintError( m_hStmtCharInfoSt, NULL );
		SQLCloseCursor( m_hStmtCharInfoSt );
		if( !ReconnectODBC() ) 
		{// 汲沥 角菩

		}
		return FALSE;
	}
	return TRUE;
}
//-------------------------------------------------------------------------------------------------------
//	Name		 :: BOOL OpenCharDetailInfoAllItem( int iAccountID, int iCharIndex, CCharacterData* x )
//	Create Date	 :: 2004/10/29
//	Description	 :: charDetail select, Inven 客 Store select (角力 霸烙俊 柳涝且 纳腐磐狼 沥焊)
//	param		 :: 
//	Return Value :: 
//	Bug	Report	 ::
//-------------------------------------------------------------------------------------------------------
BOOL TsODBC::OpenCharDetailInfoAllItem( int iAccountID, int iCharIndex, CCharacterData* x )
{
	CLock lock( &m_cs );
	m_dwLastTick = GetTickCount();

	if( !OpenCharDetailInfo( iAccountID, iCharIndex, x ) ) return FALSE;
	// Store1 Select // Store2 Select 
	if( !GetItemInfo( m_hStmtStoreSt, NULL, NULL, 0 ) ) return FALSE;
	if( !GetItemInfo( m_hStmtStore2St, &x->m_CharData.strStoreItem, &m_info.strStoreItem, STORE_SIZE ) ) return FALSE;

	return TRUE;
}
//-------------------------------------------------------------------------------------------------------
//	Name		 :: BOOL OpenCharDetailInfo( int iAccountID, int iCharIndex, CCharacterData* x )
//	Create Date	 :: 2004/10/29
//	Description	 :: charDetail select, Inven 沥焊 (芒绊绰 啊廉坷瘤 臼绰促)
//	param		 :: 
//	Return Value :: 
//	Bug	Report	 ::
//-------------------------------------------------------------------------------------------------------
BOOL TsODBC::OpenCharDetailInfo( int iAccountID, int iCharIndex, CCharacterData* x )
{
	int ret;
	// DetailInfo Select
	m_info.m_CharInfo._iCharIndex = iCharIndex;
	m_info.m_CharInfo._iAccountID = iAccountID;
	ret = SQLExecute( m_hStmtDetailInfoSt );
	if( ret == SQL_SUCCESS )
	{
		if( SQLFetch(m_hStmtDetailInfoSt) != SQL_NO_DATA )
		{
			ret = SQLGetData( m_hStmtDetailInfoSt, 21, SQL_C_BINARY, 
				(SQLCHAR *)&x->m_CharData.sSkillInfo, sizeof(x->m_CharData.sSkillInfo), &m_siColLen );
			if( ret != SQL_SUCCESS )
			{
				PrintError( m_hStmtDetailInfoSt, NULL );
				SQLCloseCursor( m_hStmtDetailInfoSt );
				return FALSE;
			}
			ret = SQLGetData( m_hStmtDetailInfoSt, 22, SQL_C_BINARY, 
				(SQLCHAR *)&x->m_CharData.byStrangeState, sizeof(x->m_CharData.byStrangeState), &m_siColLen );
			if( ret != SQL_SUCCESS )
			{
				PrintError( m_hStmtDetailInfoSt, NULL );
				SQLCloseCursor( m_hStmtDetailInfoSt );
				return FALSE;
			}
			ret = SQLGetData( m_hStmtDetailInfoSt, 23, SQL_C_BINARY, 
				(SQLCHAR *)&x->m_CharData.strBuff, sizeof(x->m_CharData.strBuff), &m_siColLen );
			if( ret != SQL_SUCCESS )
			{
				PrintError( m_hStmtDetailInfoSt, NULL );
				SQLCloseCursor( m_hStmtDetailInfoSt );
				return FALSE;
			}
			ret = SQLGetData( m_hStmtDetailInfoSt, 24, SQL_C_BINARY, 
				(SQLCHAR *)&x->m_CharData.strMacro, sizeof(x->m_CharData.strMacro), &m_siColLen );
			if( ret != SQL_SUCCESS )
			{
				PrintError( m_hStmtDetailInfoSt, NULL );
				SQLCloseCursor( m_hStmtDetailInfoSt );
				return FALSE;
			}

			x->m_CharData.iMoney = m_info.iMoney;
			x->m_CharData.iStoreMoney = m_info.iStoreMoney;
			x->m_CharData.byStr = m_info.byStr;
			x->m_CharData.byVit = m_info.byVit;
			x->m_CharData.byInt = m_info.byInt;
			x->m_CharData.byMan = m_info.byMan;
			x->m_CharData.byDex = m_info.byDex;
			x->m_CharData.stHp = m_info.stHp;
			x->m_CharData.stMp = m_info.stMp;
			x->m_CharData.byLevel = m_info.byLevel;
			x->m_CharData.iSpritePoint = m_info.iSpritePoint;
			x->m_CharData.iFame = m_info.iFame;
			x->m_CharData.xpos = m_info.xpos;
			x->m_CharData.ypos = m_info.ypos;
			x->m_CharData.zpos = m_info.zpos;
			x->m_CharData.byZoneNumber = m_info.byZoneNumber;
			x->m_CharData.byClass = m_info.byClass;
			x->m_CharData.iGuild = m_info.iGuild;
			x->m_CharData.byWarpPos = m_info.byWarpPos;
			x->m_CharData.iExp = m_info.iExp;
		}
		else
		{
			PrintError( m_hStmtDetailInfoSt, NULL );
			SQLCloseCursor( m_hStmtDetailInfoSt );
			return FALSE;
		}
		SQLCloseCursor( m_hStmtDetailInfoSt );
	}
	else
	{
		PrintError( m_hStmtDetailInfoSt, NULL );
		SQLCloseCursor( m_hStmtDetailInfoSt );
		if( !ReconnectODBC() ) 
		{// 汲沥 角菩

		}
		return FALSE;
	}
	// InvenInfo Select
	if( !GetItemInfo( m_hStmtInvenSt, &x->m_CharData.strInvenItem, &m_info.strInvenItem, INVEN_SIZE ) ) return FALSE;

	return TRUE;
}
//-------------------------------------------------------------------------------------------------------
//	Name		 :: int UpdateAllCharInfo( CHARACTER_INFO *pData )
//	Create Date	 :: 2004/10/29
//	Description	 :: 葛电 Char 单捞鸥甫 历厘.
//	param		 :: 
//	Return Value :: 0: 己傍 1: 角菩 2: 角菩饶 檬扁拳 角菩
//	Bug	Report	 ::
//-------------------------------------------------------------------------------------------------------
int	TsODBC::UpdateAllCharInfo( CHARACTER_INFO *pData )
{
	// 扁夯 沥焊 Update m_pCmdCharInfoUp
	int ret;
	memcpy( &m_info, pData, sizeof(m_info) );

	CLock lock( &m_cs );
	m_dwLastTick = GetTickCount();

	ret = SQLExecute( m_hStmtCharInfoUp );
	if( ret == SQL_SUCCESS )
	{
	}
	else
	{
		PrintError( m_hStmtCharInfoUp, NULL );
		if( !ReconnectODBC() ) 
		{// 汲沥 角菩
			return 2;
		}
		return 1;
	}		
	
	ret = SQLExecute( m_hStmtDetailInfoUp );

	if( ret == SQL_SUCCESS || ret == SQL_NEED_DATA || ret == SQL_SUCCESS_WITH_INFO )
	{
		ret = SQLParamData( m_hStmtDetailInfoUp, &m_pToken );
		while( ret == SQL_NEED_DATA ) 
		{
			m_iToken = reinterpret_cast<int*>(&m_pToken);
			if( *m_iToken == 4 )
			{
				SQLPutData( m_hStmtDetailInfoUp,  (SQLPOINTER*)&pData->sSkillInfo, SKILL_SIZE);
			}
			else if( *m_iToken  == 12 )
			{
				SQLPutData( m_hStmtDetailInfoUp,  (SQLPOINTER*)&pData->byStrangeState, STRANGE_SIZE);
			}
			else if( *m_iToken  == 13 )
			{
				SQLPutData( m_hStmtDetailInfoUp,  (SQLPOINTER*)&pData->strBuff, BUFF_SIZE);
			}
			else if( *m_iToken  == 21 )
			{
				SQLPutData( m_hStmtDetailInfoUp,  (SQLPOINTER*)&pData->strMacro, MACRO_SIZE);
			}
			ret = SQLParamData( m_hStmtDetailInfoUp, &m_pToken );
		}
	}
	else
	{
		PrintError( m_hStmtDetailInfoUp, NULL );
		if( !ReconnectODBC() ) 
		{// 汲沥 角菩
			return 2;
		}
		return 1;
	}	
	
	if( ret = UpdateItemInfo(m_hStmtEquipUp) ) return ret;	// Equip 沥焊 Update m_pCmdPEquipUp11
	if( ret = UpdateItemInfo(m_hStmtInvenUp) ) return ret;	// Inven 沥焊 Update m_pCmdInvenUp80
	if( ret = UpdateItemInfo(m_hStmtStoreUp) ) return ret;	// Store1,Store2 沥焊
	if( ret = UpdateItemInfo(m_hStmtStore2Up) ) return ret;

	return 0;
}
//-------------------------------------------------------------------------------------------------------
//	Name		 :: int UpdateItemInfo( SQLHSTMT hStmt )
//	Create Date	 :: 2004/10/29
//	Description	 :: Item Info Update
//	param		 :: 
//	Return Value :: 0: 己傍 1: 角菩 2: 角菩饶 檬扁拳 角菩
//	Bug	Report	 ::
//-------------------------------------------------------------------------------------------------------
int TsODBC::UpdateItemInfo( SQLHSTMT hStmt )
{
	int ret = SQLExecute( hStmt );
	if( ret != SQL_SUCCESS )
	{
		PrintError( hStmt, NULL );
		if( !ReconnectODBC() ) 
		{// 汲沥 角菩
			return 2;
		}
		return 1;
	}	
	return 0;
}
//-------------------------------------------------------------------------------------------------------
//	Name		 :: BOOL InitializeConn(HWND handle,int callType)
//	Create Date	 :: 2004/10/29
//	Description	 :: 檬扁拳 work thread 荐 父怒狼 connect 积己
//	param		 :: int callType ( 1: 肺弊牢 2:纳腐磐 辑滚 3: 叼厚 俊捞傈飘 )
//	Return Value :: 
//	Bug	Report	 ::
//-------------------------------------------------------------------------------------------------------
BOOL TsODBC::InitializeConn(HWND handle,int callType)
{
	m_hTextHwnd = handle;	
	m_iCallType = callType;
	
	m_siExec = SQL_DATA_AT_EXEC;
	m_siNTS = SQL_NTS;
	m_siZero = 0;
	m_siIntLen = sizeof(int);

	if( !Connection( ) ) return FALSE;
	return TRUE;
}
//-------------------------------------------------------------------------------------------------------
//	Name		 :: BOOL Connection(void)
//	Create Date	 :: 2004/10/29
//	Description	 :: 
//	param		 ::

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -