One Rowset for Each Hierarchy Level

The result of the above command contains three rowsets. Each rowset represents a complete hierarchy level in the result. The root rowset, which is the rowset returned from ICommand::Execute, which we call the Customer rowset, contains columns cust_no, cust_name, city, and a chaptered column order_rows. The second rowset, which we call the Orders rowset, contains columns ord_no, ord_date, total, and a chaptered column item_rows. Finally, the third rowset, which we call the Items rowset, contains columns item_no, description, quantity, unit_price, and ext_price.

A single rowset may apply to more than one level of a recursive set of objects, but the specification also uses recursion so that the rowset is defined only once in the specification, and all bookmarks or chapters refer to that. Hence there is only one rowset at execution time.