#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; }