Shape Append 子句

适用于:Access 2013、Office 2013

shape 命令 APPEND 子句用于将一个或多个列追加到 Recordset 中。 通常,这些列是章节列,而章节列是对子 Recordset 的引用。

语法

 
SHAPE [parent-command [[AS] parent-alias]] APPEND column-list

说明

此子句的各部分如下所示:

  • parent-command

  • 零个或下列项之一(可以完全省略 parent-command):

    • 返回 Recordset 对象的大括号 (“{}”) 中的提供程序命令。 该命令向基础数据提供程序发出,其语法取决于该提供程序的要求。 这通常是 SQL 语言,但 ADO 不需要任何特定的查询语言。

    • 嵌入在括号中的另一个 Shape 命令。

    • TABLE 关键字,后跟数据提供程序中的表的名称。

  • parent-alias

    • 用于引用父 Recordset 的可选别名。
  • column-list

    • 一个或多个以下项:

      • 聚合列。

      • 计算列。

      • 用 NEW 子句创建的新列。

      • 章节列。 章节列的定义放在括号(“()”)中。 请参阅以下语法:

        
        SHAPE [parent-command [[AS] parent-alias]] 
        APPEND (child-recordset [ [[AS] child-alias] 
        RELATE parent-column TO child-column | PARAMETER param-number, ... ]) 
        [[AS] chapter-alias] 
        [, ... ] 
        
  • child-recordset

    • 返回 Recordset 对象的大括号 (“{}”) 中的提供程序命令。 该命令向基础数据提供程序发出,其语法取决于该提供程序的要求。 这通常是 SQL 语言,但 ADO 不需要任何特定的查询语言。

    • 嵌入在括号中的另一个 Shape 命令。

    • 现有已构形 Recordset 的名称。

    • TABLE 关键字,后跟数据提供程序中的表的名称。

  • child-alias

    • 引用子 Recordset 的别名。
  • parent-column

    • parent-command 返回的 Recordset 中的列。
  • child-column

    • child-command 返回的 Recordset 中的列。
  • param-number

  • chapter-alias

    • 引用追加到父记录集的章节列的别名。

注意

  • parent-column TO child-column”子句实际上是列表,其中所定义的每个关系均以逗号分隔。
  • APPEND 关键字后面的子句实际上是列表,其中每个子句均以逗号分隔,并且定义了要追加到父记录集的其他列。

备注

利用用户输入来构造提供程序命令以便将其作为 SHAPE 命令的一部分时,SHAPE 会将用户提供的提供程序命令当作不透明的字符串,并如实地传递给提供程序。 例如,在以下 SHAPE 命令中,

 
SHAPE {select * from t1} APPEND ({select * from t2} RELATE k1 TO k2) 

SHAPE 将执行两个命令:select * from t1 和 (select * from t2 RELATE k1 TO k2)。 如果用户提供了由多个提供程序命令组成并以分号分隔的复合命令,SHAPE 将无法辨别差异。 因此,在以下 SHAPE 命令中,

 
SHAPE {select * from t1; drop table t1} APPEND ({select * from t2} RELATE k1 TO k2) 

SHAPE 将执行 select * from t1; drop table t1 和 (select * from t2 RELATE k1 TO k2), 而不会认识到 drop table t1 是一个单独的提供程序命令,并且在这种情况下是危险的。 应用程序必须始终验证用户输入,以防止发生类似潜在黑客攻击。

本节包括下列主题: