Exemplo n.º 1
0
Records Database::children(const RecordID& idParent) const
{
	Records result;
	
	Dbc* pCursor = nullptr;
	dbParentId_.cursor(NULL, &pCursor, 0);
	assert(pCursor);
    
    BOOST_SCOPE_EXIT(&pCursor) 
    {
        pCursor->close();
    } BOOST_SCOPE_EXIT_END
	
	Dbt keyParent(idParent.data(), idParent.size());
	Dbt keyChild;
	Dbt record;
	
	int res = pCursor->pget(&keyParent, &keyChild, &record, DB_SET);
	
	while (res == 0)
	{
		result.push_back(make_Record(RecordID(keyChild), RecordData(record)));
		res = pCursor->pget(&keyParent, &keyChild, &record, DB_NEXT_DUP);
	}
	
	return result;
}
Exemplo n.º 2
0
Records OCILib::Result::records() const {
	if (!res)
		return Records();
	Records recs;
        while(true)
        {
            Record r=OCILib::Cursor::fetchOneRow();
            if(r.empty()) 
                break;
            recs.push_back(r);
        }
    return recs;
}