利用occi开发,希望能够批量获取数据,例如,记录有10000条,我每次获取500条,setPrefetchRowCount接口设置setPrefetchRowCount(500),获取500条后就没有数据了,但是next还可以使用,请问是为什么,ado有类似接口,就好用

解决方案 »

  1.   

    使用occi编程,本想设定一次获取500条数据,ADO中经常使用,但是发现occi中使用 pStatement->setPrefetchRowCount(500);后无效,第一第二条数据可能对,但是后边的数据就不对了,也不知道为什么,那位高人指教一下。以下代码为测试用代码,鉴于最后取得的数据类型暂时不知道,所以都取成字符串型:
    代码如下:
    occi::Statement* pStatement = m_pConn->createStatement(UStrSQL);
    if(pStatement != NULL)
    {
    pStatement->setPrefetchRowCount(m_nCachSize);
    if(occi::Statement::UNPREPARED != pStatement->execute())
    {
    occi::ResultSet* m_pResultSet = pStatement->getResultSet();
            while(occi::ResultSet::END_OF_FETCH != m_pResultSet->status())
    {
                                      m_pResultSet->next();
                      std::string str = m_pResultSet->getString(0);//姑且只那一个字段的数据
                                    }
    }