Fetching Rows (OLE DB SDK)
Methods such as IRowsetFind::FindNextRow, IRowset::GetNextRows, IRowsetLocate::GetRowsAt, IRowsetLocate::GetRowsByBookmark, and IRowsetScroll::GetRowsAtRatio are used to fetch rows from a rowset. The consumer can use these methods to get multiple row handles with a single call.
The provider manages its row buffers on behalf of the consumer. When a row is fetched, the provider stores the row data in a buffer local to the provider. The row is usually stored in a native format, although how this is done is provider-specific. The consumer does not have direct access to the provider's data. Instead, the consumer calls IRowset::GetData to fetch row data into its own buffer and IRowsetChange::SetData to make changes to it. For more information, see Getting and Setting Data.
The rowset's DBPROP_CANHOLDROWS property specifies whether row handles previously obtained from earlier calls to methods such as GetNextRows must be released before the consumer can call IRowset::GetNextRows to retrieve new row handles.