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