将多个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;
}