当前位置: 代码迷 >> SQL >> 将sql语句用paraset中的值给填充一上
  详细解决方案

将sql语句用paraset中的值给填充一上

热度:77   发布时间:2016-05-05 13:39:00.0
将sql语句用paraset中的值给填充一下!
int CSQLMake::DoSqlFit(std::string &strSql, CParaSet &oInPara){    int iRet = 0;    // 拆分sql    std::vector<std::string> vctSql;    SplitSql(strSql, vctSql);    // 循环处理sql    std::vector<std::string> vctSqlFit;    std::vector<std::string>::iterator itr;    for (itr=vctSql.begin(); itr!=vctSql.end(); itr++)    {        //std::cout << "=====>" << *itr << std::endl;        MakeSqlFit(*itr, oInPara);        //std::cout << "--------->" << *itr << std::endl;        vctSqlFit.push_back(*itr);    }    // 合并sql    MergeSql(strSql, vctSqlFit);    // 最后处理一下排序字段 order by    //需要排序,需要把原来的过滤条件给去掉。    std::string::size_type iOrderpos = strSql.find(" order ");    if (std::string::npos == iOrderpos)    {        ;//没有order排序,直接过。    }    else    {        strSql = strSql.substr(0,iOrderpos);    }    if ( oInPara["sort.strFild"].isNull() || oInPara["sort.iOrder"].isNull() )    {        return iRet;    }    int iOrder = oInPara["sort.iOrder"].asInt();    std::string strSortField = oInPara["sort.strFild"].asString();    strSql = strSql + " order by " + strSortField;    if (2 == iOrder)    {        strSql = strSql + " ASC";    }    else    {        strSql = strSql + " DESC";    }    return iRet;}
  相关解决方案