非参数化命令的操作

对于非参数化命令,将执行所有提供程序命令,并在命令执行期间创建 记录集。 如果命令同步执行,则会完全填充所有 记录集。 如果选择异步填充模式,则 记录集 的填充状态将取决于填充模式和 记录集的大小。

例如,父命令 可以从 Customers 表中返回公司的客户的 Recordset子命令 可以从 Orders 表中返回所有客户的订单 Recordset

SHAPE {SELECT * FROM Customers}   
   APPEND ({SELECT * FROM Orders} AS chapOrders   
   RELATE customerID TO customerID)  

对于非参数化的父子关系,每个父级和子级的 Recordset 对象必须共享一个共同的列以将它们关联起来。 在 RELATE 子句中,列的命名顺序是首先 父列,然后 子列。 这些列在各自的 Recordset 对象中可能有不同的名称,但它们必须指向相同的信息,以便建立一个有意义的关系。 例如,CustomersOrders Recordset 对象可以同时具有 customerID 字段。 由于子 Recordset 的成员身份由提供程序命令决定,因此子 Recordset 可以包含孤立行。 这些孤立行在不进行额外重塑的情况下是不可访问的。

数据整形会将章节列追加到父 Recordset。 章节列中的值引用子 Recordset中符合 RELATE 子句的行。 也就是说,同一个值位于给定父行的 父列 中,就像在章节子级的所有行的 子列 中一样。 在同一 RELATE 子句中使用多个 TO 子句时,这些 TO 子句通过一个 AND 运算符被隐式组合。 如果 RELATE 子句中的父列不构成父 Recordset的键,则单个子行可以有多个父行。

访问章节列中的引用时,ADO 会自动检索引用所表示的 Recordset。 请注意,在非参数化命令中,尽管已经检索到整个子 记录集,但是该章节仅展示其中部分行。

如果追加的列没有 章节别名,则会自动为其生成名称。 列的 Field 对象将被追加到 Recordset 对象的 Fields 集合中,并且其数据类型将为 adChapter

有关分层导航 记录集的信息,请参阅 访问分层记录集中的行

另请参阅

数据整形示例
正式形状语法
常规 形状命令