将多个sql话语给合并成一个sql
将多个sql语句给合并成一个sql
int CSQLMake::MergeSql(std::string &strSql, std::vector<std::string> &vctSql) { int iRet = 0; boost::regex regEx("@@([\\d]+)"); boost::match_flag_type flags = boost::match_default; std::vector<std::string>::iterator itr; std::string strTemp; std::string::const_iterator start, end; int iCount = 0; for (itr=vctSql.begin(); itr!=vctSql.end(); itr++) { boost::match_results<std::string::const_iterator> what; strTemp = *itr; while (boost::regex_search(strTemp, what, regEx, flags)) { std::string str(what[1].first, what[1].second); int iIndex = ACE_OS::atoi(str.c_str()); std::string::size_type stPos = strTemp.find(what[0]); std::string strLeft = strTemp.substr(0, stPos); std::string strRight = strTemp.substr(stPos + (what[0].second - what[0].first)); strTemp = strLeft + vctSql[iIndex] + strRight; } vctSql[iCount] = strTemp; iCount ++; } strSql = strTemp; return iRet; }