📄 tsodbc.cpp
字号:
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 + -