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; }
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; }