#include "StdAfx.h"
|
#include "MBTNXXXObj.h"
|
#include "MBAttrValueMgr.h"
|
|
|
|
CMBTNXXXObj::CMBTNXXXObj(void)
|
{
|
RemoveAllAttr();
|
|
m_bDldFile = false;
|
}
|
|
|
CMBTNXXXObj::~CMBTNXXXObj(void)
|
{
|
RemoveAllAttr();
|
}
|
|
|
void CMBTNXXXObj::GetAttrVector( CMBTNXXXAttrVector &vectorAttr )
|
{
|
vectorAttr.clear();
|
vectorAttr = m_vectorAttr;
|
}
|
|
CMBTNXXXAttr *CMBTNXXXObj::GetAttr( CString strName )
|
{
|
if( strName.IsEmpty() )
|
return NULL;
|
|
CMBTNXXXAttrVector::iterator it;
|
CMBTNXXXAttr *pAttr = NULL;
|
|
for( it = m_vectorAttr.begin();it != m_vectorAttr.end();it++ )
|
{
|
pAttr = *it;
|
if( pAttr->m_strName == strName )
|
{
|
return pAttr;
|
}
|
}
|
|
return NULL;
|
}
|
|
bool CMBTNXXXObj::AddAttr( CMBTNXXXAttr *pAttr )
|
{
|
if( NULL == pAttr || pAttr->m_strName.IsEmpty() )
|
return false;
|
|
m_vectorAttr.push_back(pAttr);
|
|
return true;
|
}
|
|
bool CMBTNXXXObj::RemoveAllAttr()
|
{
|
CMBTNXXXAttrVector::iterator it;
|
CMBTNXXXAttr *pAttr = NULL;
|
|
for( it = m_vectorAttr.begin();it != m_vectorAttr.end();it++ )
|
{
|
pAttr = *it;
|
delete pAttr;
|
pAttr = NULL;
|
}
|
|
m_vectorAttr.clear();
|
|
return true;
|
}
|
|
// »ñÈ¡insert sql
|
CString CMBTNXXXObj::GetInsertSql( CString strTableName )
|
{
|
CString strSql,strFileds,strValues;
|
|
CMBTNXXXAttrVector::iterator it;
|
CMBTNXXXAttr *pAttr = NULL;
|
|
strFileds = _T("S_ID");
|
strFileds += _T(",");
|
|
strValues = _T("'") + m_strObjID + _T("'");
|
strValues += _T(",");
|
|
for( it = m_vectorAttr.begin();it != m_vectorAttr.end();it++ )
|
{
|
pAttr = *it;
|
strFileds += pAttr->m_strName;
|
strFileds += _T(",");
|
|
strValues += _T("'") + pAttr->m_strVaule + _T("'");
|
strValues += _T(",");
|
}
|
|
strFileds = strFileds.Left(strFileds.GetLength()-1);
|
strValues = strValues.Left(strValues.GetLength()-1);
|
|
strSql.Format(_T("insert into %s(%s) VALUES (%s)"),strTableName,strFileds,strValues);
|
return strSql;
|
}
|
|
CString CMBTNXXXObj::GetUpdateSql( CString strTableName )
|
{
|
CString strSql,strSetSql,strTmpSql,strFiled,strVaule,strTabLabel;
|
|
CMBTNXXXAttrVector::iterator it;
|
CMBTNXXXAttr *pAttr = NULL;
|
|
for( it = m_vectorAttr.begin();it != m_vectorAttr.end();it++ )
|
{
|
pAttr = *it;
|
|
strTabLabel = pAttr->m_strTabLable;
|
strTabLabel= strTabLabel.MakeUpper();
|
|
strFiled = pAttr->m_strName;
|
strVaule = pAttr->m_strVaule;
|
|
strTmpSql.Format(_T("%s=\"%s\","),strFiled,strVaule);
|
strSetSql += strTmpSql;
|
}
|
|
strSetSql = strSetSql.Left(strSetSql.GetLength()-1);
|
|
strSql.Format(_T("UPDATE %s SET %s where S_ID='%s'"),strTableName,strSetSql,m_strObjID);
|
return strSql;
|
}
|
|
|
CString CMBTNXXXObj::IsExsitSqlToSTb( CString strTableName )
|
{
|
CString strSql;
|
|
strSql.Format(_T("select * from %s where S_ID='%s'"),strTableName,m_strObjID);
|
return strSql;
|
}
|
|
|
|
|
CString CMBTNXXXObj::GetInsertSqlToSTb( CString strTableName )
|
{
|
CString strSql,strFileds,strValues,strTabLabel;
|
|
CMBTNXXXAttrVector::iterator it;
|
CMBTNXXXAttr *pAttr = NULL;
|
|
strFileds = _T("S_ID");
|
strFileds += _T(",");
|
|
strValues = _T("'") + m_strObjID + _T("'");
|
strValues += _T(",");
|
|
for( it = m_vectorAttr.begin();it != m_vectorAttr.end();it++ )
|
{
|
pAttr = *it;
|
|
strTabLabel = pAttr->m_strTabLable;
|
strTabLabel= strTabLabel.MakeUpper();
|
|
if( strTabLabel == _T("S") )
|
{
|
strFileds += pAttr->m_strName;
|
strFileds += _T(",");
|
|
strValues += _T("'") + pAttr->m_strVaule + _T("'");
|
strValues += _T(",");
|
}
|
}
|
|
strFileds = strFileds.Left(strFileds.GetLength()-1);
|
strValues = strValues.Left(strValues.GetLength()-1);
|
|
strSql.Format(_T("insert into %s(%s) VALUES (%s)"),strTableName,strFileds,strValues);
|
return strSql;
|
}
|
|
|
CString CMBTNXXXObj::GetUpdateSqlToSTb( CString strTableName )
|
{
|
CString strSql,strSetSql,strTmpSql,strFiled,strVaule,strTabLabel;
|
|
CMBTNXXXAttrVector::iterator it;
|
CMBTNXXXAttr *pAttr = NULL;
|
|
|
for( it = m_vectorAttr.begin();it != m_vectorAttr.end();it++ )
|
{
|
pAttr = *it;
|
|
strTabLabel = pAttr->m_strTabLable;
|
strTabLabel= strTabLabel.MakeUpper();
|
|
if( strTabLabel == _T("S") )
|
{
|
strFiled = pAttr->m_strName;
|
strVaule = pAttr->m_strVaule;
|
|
strTmpSql.Format(_T("%s=\"%s\","),strFiled,strVaule);
|
strSetSql += strTmpSql;
|
}
|
}
|
|
strSetSql = strSetSql.Left(strSetSql.GetLength()-1);
|
|
strSql.Format(_T("UPDATE %s SET %s where S_ID='%s'"),strTableName,strSetSql,m_strObjID);
|
return strSql;
|
}
|
|
|
CString CMBTNXXXObj::IsExsitSqlToMTb( CString strTableName )
|
{
|
CString strSql;
|
|
strSql.Format(_T("select * from %s where G_MASTER_OBJ_ID='%s' and G_SLAVE_OBJ_ID='%s'"),strTableName,m_strMID,m_strObjID);
|
|
return strSql;
|
}
|
|
CString CMBTNXXXObj::GetInsertSqlToMTb( CString strMAttrs,CString strTableName )
|
{
|
CString strTabLabel,strOrder,strEffect,strInvalidate,strDisplayName,strJoinTime;
|
CString strName,strVaule;
|
CString strSql,strFileds,strValues;
|
|
CMBTNXXXAttrVector::iterator it;
|
CMBTNXXXAttr *pAttr = NULL;
|
|
|
CMBAttrValueMgr *pAttrValueMgr = new CMBAttrValueMgr();
|
pAttrValueMgr->AddAttr( strMAttrs );
|
|
for( it = m_vectorAttr.begin();it != m_vectorAttr.end();it++ )
|
{
|
pAttr = *it;
|
|
strName = pAttr->m_strName;
|
strName = strName.MakeLower();
|
strName = strName.Trim();
|
|
strVaule = pAttr->m_strVaule;
|
|
strTabLabel = pAttr->m_strTabLable;
|
strTabLabel = strTabLabel.MakeUpper();
|
strTabLabel = strTabLabel.Trim();
|
|
if( strTabLabel == _T("C") )
|
{
|
if( strName == _T("order") )
|
{
|
strOrder = strVaule;
|
}
|
else if( strName == _T("effect") )
|
{
|
strEffect = strVaule;
|
}
|
else if( strName == _T("invalidate") )
|
{
|
strInvalidate = strVaule;
|
}
|
else if( strName == _T("displayname") )
|
{
|
strDisplayName = strVaule;
|
}
|
else if( strName == _T("jointime") )
|
{
|
strJoinTime = strVaule;
|
}
|
}
|
else if( strTabLabel == _T("M") )
|
{
|
pAttrValueMgr->AttachValue(pAttr->m_strName,pAttr->m_strVaule);
|
}
|
}
|
|
pAttrValueMgr->GetAttrs( strFileds,strValues );
|
|
strSql.Format(_T("insert into %s(G_MASTER_OBJ_ID,G_SLAVE_OBJ_ID,G_SLAVE_OBJ_VID,%s,C_Order,C_Effect,C_Invalidate,C_DisplayName,C_JoinTime) VALUES ('%s','%s','%s',%s,'%s','%s','%s','%s','%s')"),
|
strTableName,strFileds,m_strMID,m_strObjID,m_strSVID,strValues,strOrder,strEffect,strInvalidate,strDisplayName,strJoinTime);
|
|
MBSAFE_DELETE(pAttrValueMgr)
|
|
return strSql;
|
}
|
|
CString CMBTNXXXObj::GetUpdateSqlToMTb( CString strMAttrs,CString strTableName )
|
{
|
CString strTabLabel,strOrder,strEffect,strInvalidate,strDisplayName,strJoinTime;
|
CString strName,strVaule;
|
CString strSql,strFileds,strValues;
|
|
CMBTNXXXAttrVector::iterator it;
|
CMBTNXXXAttr *pAttr = NULL;
|
|
|
CMBAttrValueMgr *pAttrValueMgr = new CMBAttrValueMgr();
|
pAttrValueMgr->AddAttr( strMAttrs );
|
|
for( it = m_vectorAttr.begin();it != m_vectorAttr.end();it++ )
|
{
|
pAttr = *it;
|
|
strName = pAttr->m_strName;
|
strName = strName.MakeLower();
|
strName = strName.Trim();
|
|
strVaule = pAttr->m_strVaule;
|
|
strTabLabel = pAttr->m_strTabLable;
|
strTabLabel = strTabLabel.MakeUpper();
|
strTabLabel = strTabLabel.Trim();
|
|
if( strTabLabel == _T("C") )
|
{
|
if( strName == _T("order") )
|
{
|
strOrder = strVaule;
|
}
|
else if( strName == _T("effect") )
|
{
|
strEffect = strVaule;
|
}
|
else if( strName == _T("invalidate") )
|
{
|
strInvalidate = strVaule;
|
}
|
else if( strName == _T("displayname") )
|
{
|
strDisplayName = strVaule;
|
}
|
else if( strName == _T("jointime") )
|
{
|
strJoinTime = strVaule;
|
}
|
}
|
else if( strTabLabel == _T("M") )
|
{
|
pAttrValueMgr->AttachValue(pAttr->m_strName,pAttr->m_strVaule);
|
}
|
}
|
|
strFileds = pAttrValueMgr->GetAttrs( );
|
|
strSql.Format(_T("UPDATE %s SET %s,C_Order='%s',C_Effect='%s',C_Invalidate='%s',C_DisplayName='%s',C_JoinTime='%s' where G_MASTER_OBJ_ID='%s' and G_SLAVE_OBJ_ID='%s'"),strTableName,strFileds,strOrder,strEffect,strInvalidate,strDisplayName,strJoinTime,m_strMID,m_strObjID);
|
|
MBSAFE_DELETE(pAttrValueMgr)
|
|
return strSql;
|
}
|