Shape APPEND 子句
shape 命令的 APPEND 子句會將資料行附加至 Recordset。 這些資料行通常是參考子 Recordset 的章節資料行。
語法
SHAPE [parent-command [[AS] parent-alias]] APPEND column-list
描述
此子句的各部分如下所示:
parent-command
零或下列其中一個值 (您可以完全忽略 parent-command):
以大括弧 ("{}") 括住且傳回 Recordset 物件的 provider 命令。 此命令會發出給基礎資料提供者,而且其語法取決於該提供者的需求。 這通常是 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 物件的 provider 命令。 此命令會發出給基礎資料提供者,而且其語法取決於該提供者的需求。 這通常是 SQL 語言 (雖然 ADO 不會要求任何特定的查詢語言)。
另一個以括弧括住的 shape 命令。
成形的現有 Recordset 名稱。
TABLE 關鍵字,後面接著資料提供者中的資料表名稱。
child-alias
代表子 Recordset 的別名。
parent-column
Recordset 中由 parent-command 傳回的資料行。
child-column
Recordset 中由 child-command 傳回的資料行。
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
是不同且危險 (在此情況下) 的提供者命令。 應用程式必須一律驗證使用者輸入,以防止這類潛在的駭客攻擊發生。
此章節包含下列主題。