Shape APPEND 子句

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 是一个单独的、(在本例中为)危险的提供程序命令。 应用程序必须始终验证用户输入,以防止发生此类潜在的黑客攻击。

本部分包含以下主题。

另请参阅

数据整理示例
正式 Shape 语法
常用 Shape 命令