In ADO, the in-memory representation of database data is the RecordSet. In ADO+, it is the DataSet. There are important differences between them.
An ADO RecordSet looks like a single table. If a RecordSet is to contain data from multiple database tables, it must use a JOIN query, which assembles the data from the various database tables into a single result table.
In contrast, an ADO+ DataSet is a collection of one or more tables. The tables within a data set are called data tables; specifically, they are DataTable objects. If a data set is to contain data from multiple database tables, it will typically contain multiple DataTable objects. That is, each DataTable object typically corresponds to a single database table or view.
Typically a data set also contains relationships. A relationship within a data set is analogous to a foreign-key relationship in a database: it associates rows of one data table with rows of another. For example, if a data set contains a table of investors, and a second containing each investor's stock purchases, it would also contain a relationship. The relationship would connect each row of the investor table with the attendant rows of the purchase table. In ADO+, the relation is represented by a DataRelation. See Adding DataRelation
In ADO+, the methods you use to read, modify, or otherwise visit a data item differ from the programming methods you use in ADO.
In ADO, you scan sequentially through the rows of the record set.
In ADO+, you employ a navigation paradigm, moving from a row of one data table to the corresponding row or rows of another data table by following the relationship. For example, starting from the data table row of the Investor
table describing "Lucretia Shekkar", you can navigate to the set of rows of the Purchase
table describing her purchases.