形状追加子句

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

语法

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

描述

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

父命令
零个或以下项之一(可以完全省略 父命令):

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

  • 另一个形状命令嵌入在括号中。

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

父别名
一个可选别名,引用父 Recordset

列列表
以下一项或多项:

  • 聚合列。

  • 计算列。

  • 使用 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]   
   [, ... ]  

言论

子记录集

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

  • 另一个形状命令嵌入在括号中。

  • 现有形状 Recordset的名称。

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

子别名
指代子 Recordset的别名。

父列
父命令返回的 Recordset 中的列。

子列
子命令返回的 记录集 中的一列。

参数数
请参阅 参数化命令的操作

章节别名
一个别名,该别名引用追加到父级的章节列。

注意

“父列 TO 子列” 子句实际上是一个列表,每个已定义的关系用逗号分隔。

注意

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 是一个独立且在这种情况下危险的提供程序命令。 应用程序必须始终验证用户输入,以防止发生此类潜在的黑客攻击。

本节包含以下主题。

另请参阅

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