Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Chapters are used to identify a group of rows within a rowset. The group of rows may have a common characteristic, such as satisfying a filter condition or having a common parent in a hierarchical rowset, and may have an imposed order. Chapter handles are defined as follows:
typedef ULONG_PTR HCHAPTER;
Remarks
Because chapters have significant overhead, they must be managed. This is done automatically according to the following rules:
The rules for sequential rowsets take precedence, so a grouped sequential rowset's chapters can be opened only in the proper sequence and cannot be revisited after they have been scanned. It might be necessary to close a prior chapter before the next can be opened.
A chapter is opened upon use, if it is not already in an active state.
When the reference count on a chapter is released to zero, the resources needed to manage the chapter can be discarded or marked as eligible for discard. However, if the reference count on a chapter falls to zero and the chapter contains rows with pending changes, the chapter's resources might not be freed until the pending change status on the rows is cleared through a call to either IRowsetUpdate::Update or IRowsetUpdate::Undo.
This section contains the following topics: