操作非参数化命令
对于非参数化命令,将执行所有提供程序命令,并在命令执行期间创建记录集。 如果同步执行该命令,则所有记录集将被完全填充。 如果选择了异步填充模式,记录集的填充状态将取决于填充模式和记录集的大小。
例如,父命令可以从 Customers 表返回公司客户的记录集,子命令可以从 Orders 表返回所有客户的订单记录集。
SHAPE {SELECT * FROM Customers}
APPEND ({SELECT * FROM Orders} AS chapOrders
RELATE customerID TO customerID)
对于非参数化的父级-子级关系,每个父级 Recordset 对象必须有一个共同的列进行关联。 列在 RELATE 子句中命名,首先是父列,然后是子列。 这些列在其各自的 Recordset 对象中名称可能各不相同,但必须参考相同的信息才能指定有意义的关系。 例如,Customers 和 Orders Recordset 对象可以同时具有 customerID 字段。 因为子记录集的成员身份由提供程序命令确定,所以子记录集可以包含孤立的行。 如果不进行额外的整理,将无法访问这些孤立行。
数据整理将章节列追加到父记录集。 章节列中的值是对子记录集中满足 RELATE 子句的行的引用。 也就是说,给定父行的父列中的值与章节子行的所有行的子列中的值相同。 当在同一个 RELATE 子句中使用多个 TO 子句时,它们会使用 AND 运算符隐式组合。 如果 RELATE 子句中的父列不构成父记录集的键,单个子行可以具有多个父行。
访问章节列中的引用时,ADO 会自动检索引用表示的记录集。 请注意,在非参数化命令中,尽管已检索到整个子记录集,该章仅显示行的子集。
如果追加的列没有章别名,则会自动为其生成一个名称。 列的 Field 对象将追加到 Recordset 对象的 Fields 集合中,其数据类型将为 adChapter。
有关导航分层记录集的信息,请参阅访问分层记录集中的行。