SHAPE APPEND-Klausel
Die APPEND-Klausel des Shape-Befehls fügt eine Spalte oder mehrere Spalten an ein Recordset an. Häufig sind diese Spalten Kapitelspalten, die auf ein untergeordnetes Recordset-Objekt verweisen.
Syntax
SHAPE [parent-command [[AS] parent-alias]] APPEND column-list
BESCHREIBUNG
Die Teile dieser Klausel sind die folgenden:
parent-command
Null oder eines der folgenden Elemente (Sie können parent-command vollständig weglassen):
Ein in Klammern („{}“) eingeschlossener Anbieterbefehl, der ein Recordset-Objekt zurückgibt. Der Befehl wird an den zugrunde liegenden Datenanbieter ausgestellt, und die Syntax hängt von den Anforderungen dieses Anbieters ab. Dies ist in der Regel die SQL-Sprache, obwohl ADO keine bestimmte Abfragesprache erfordert.
Ein weiterer in Klammern eingeschlossener Shape-Befehl.
Das TABLE-Schlüsselwort, gefolgt vom Namen der Tabelle im Datenanbieter.
parent-alias
Ein optionaler Alias, der auf das übergeordnete Recordset-Objekt verweist
column-list
Mindestens eines der folgenden Elemente:
Eine Aggregatspalte
Eine berechnete Spalte
Eine neue Spalte, die mithilfe der NEW-Klausel erstellt wurde
Eine Kapitelspalte. Eine Kapitelspaltendefinition wird in Klammern („()“) eingeschlossen. Sehen Sie sich die folgende Syntax an.
SHAPE [parent-command [[AS] parent-alias]]
APPEND (child-recordset [ [[AS] child-alias]
RELATE parent-column TO child-column | PARAMETER param-number, ... ])
[[AS] chapter-alias]
[, ... ]
Bemerkungen
child-recordset
Ein in Klammern („{}“) eingeschlossener Anbieterbefehl, der ein Recordset-Objekt zurückgibt. Der Befehl wird an den zugrunde liegenden Datenanbieter ausgestellt, und die Syntax hängt von den Anforderungen dieses Anbieters ab. Dies ist in der Regel die SQL-Sprache, obwohl ADO keine bestimmte Abfragesprache erfordert.
Ein weiterer in Klammern eingeschlossener Shape-Befehl.
Der Name eines vorhandenen strukturierten Recordset
Das TABLE-Schlüsselwort, gefolgt vom Namen der Tabelle im Datenanbieter.
child-alias
Ein Alias, der auf das untergeordnete Recordset-Objekt verweist
parent-column
Eine Spalte im Recordset, die von parent-command zurückgegeben wird
child-column
Eine Spalte im Recordset, die von child-command zurückgegeben wird
param-number
Weitere Informationen finden Sie unter Verarbeitung parametrisierter Befehle.
chapter-alias
Ein Alias, der auf die Kapitelspalte verweist, die an das übergeordnete Element angefügt ist
Hinweis
Die Klausel „parent-column TO child-column“ ist eigentlich eine Liste, in der jede definierte Beziehung durch ein Komma getrennt ist.
Hinweis
Die Klausel nach dem APPEND-Schlüsselwort ist eigentlich eine Liste, in der jede Klausel durch ein Komma getrennt ist und eine weitere Spalte definiert, die an die übergeordnete Spalte angefügt werden soll.
Wenn Sie Anbieterbefehle aus Benutzereingaben als Teil eines SHAPE-Befehls erstellen, behandelt SHAPE den von dem*der Benutzer*in bereitgestellten Anbieterbefehl als nicht transparente Zeichenfolge und übergibt ihn unverändert an den Anbieter. Beispiel: Im folgenden SHAPE-Befehl
SHAPE {select * from t1} APPEND ({select * from t2} RELATE k1 TO k2)
führt SHAPE zwei Befehle aus: select * from t1
und (select * from t2 RELATE k1 TO k2)
. Wenn der*die Benutzer*in einen zusammengesetzten Befehl eingibt, der aus mehreren durch Semikolon getrennten Anbieterbefehlen besteht, ist SHAPE nicht in der Lage, den Unterschied zu erkennen. Im folgenden SHAPE-Befehl
SHAPE {select * from t1; drop table t1} APPEND ({select * from t2} RELATE k1 TO k2)
führt SHAPE select * from t1; drop table t1
und (select * from t2 RELATE k1 TO k2),
aus, ohne zu erkennen, dass es sich bei drop table t1
um einen separaten, und in diesem Fall gefährlichen Anbieterbefehl handelt. Anwendungen müssen Benutzereingaben immer überprüfen, um solche potenziellen Hackerangriffe zu verhindern.
In diesem Abschnitt werden die folgenden Themen behandelt:
Weitere Informationen
Datenstrukturierung – Beispiel
Formale Grammatik für Strukturen
Shape-Befehle im Allgemeinen