Freigeben über


APPEND-Klausel für Shape

Der Shape-Befehl APPEND-Klausel fügt eine oder mehrere Spalten an ein Recordsetan. Häufig handelt es sich bei diesen Spalten um Kapitelspalten, die sich auf ein untergeordnetes -Recordset-beziehen.

Syntax

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

Beschreibung

Die Teile dieser Klausel sind wie folgt:

übergeordneten Befehl
Null oder eine der folgenden Optionen (Sie können den übergeordneten Befehl vollständig weglassen):

  • Ein in geschweifte Klammern eingeschlossener Anbieterbefehl ("{}"), der ein Recordset-Objekt zurückgibt. Der Befehl wird an den zugrunde liegenden Datenanbieter ausgegeben, und seine Syntax hängt von den Anforderungen dieses Anbieters ab. Dies ist in der Regel die SQL-Sprache, obwohl ADO keine bestimmte Abfragesprache erfordert.

  • Ein anderer Shape-Befehl, der in Klammern eingebettet ist.

  • Das SCHLÜSSELwort TABLE, gefolgt vom Namen einer Tabelle im Datenanbieter.

der übergeordnete Alias
Ein optionaler Alias, der auf das übergeordnete -Recordsetverweist.

Spaltenliste
Eine oder mehrere der folgenden Optionen:

  • Eine Aggregatspalte.

  • Eine berechnete Spalte.

  • Eine neue Spalte, die mithilfe der NEW-Klausel erstellt wird.

  • Eine Kapitelspalte. Eine Kapitelspaltendefinition ist in Klammern ("()") eingeschlossen. Siehe die folgende Syntax.

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

untergeordnetes Datensatz

  • Ein Anbieterbefehl in geschweiften Klammern ("{}"), der ein Recordset Objekt zurückgibt. Der Befehl wird an den zugrunde liegenden Datenanbieter ausgegeben, und seine Syntax hängt von den Anforderungen dieses Anbieters ab. Dies ist in der Regel die SQL-Sprache, obwohl ADO keine bestimmte Abfragesprache erfordert.

  • Ein anderer Shape-Befehl, der in Klammern eingebettet ist.

  • Der Name eines vorhandenen geformten Recordset-.

  • Das SCHLÜSSELwort TABLE, gefolgt vom Namen einer Tabelle im Datenanbieter.

untergeordneter Alias
Ein Alias, der auf das untergeordnete Recordset verweist.

Elternspalte
Eine Spalte im Recordset, die vom übergeordneten Befehl zurückgegeben wird.

Kindspalte
Eine Spalte im Recordset, das vom untergeordneten Befehlzurückgegeben wurde.

param-number
Siehe Operation der parametrisierten Befehle.

Kapitelalias
Ein Alias, der sich auf die Kapitelspalte bezieht, die an das übergeordnete Element angefügt wird.

Anmerkung

Die "parent-column TO child-column" Klausel ist tatsächlich eine Liste, in der jede definierte Beziehung durch ein Komma getrennt ist.

Anmerkung

Die Klausel nach dem APPEND-Schlüsselwort ist tatsächlich eine Liste, in der jede Klausel durch ein Komma getrennt ist und eine weitere Spalte definiert, die an das übergeordnete Element angefügt werden soll.

Wenn Sie Anbieterbefehle aus der Benutzereingabe als Teil eines SHAPE-Befehls erstellen, behandelt SHAPE den vom Benutzer bereitgestellten Anbieterbefehl als undurchsichtige Zeichenfolge und übergibt sie treu an den Anbieter. Beispiel: Im folgenden SHAPE-Befehl:

SHAPE {select * from t1} APPEND ({select * from t2} RELATE k1 TO k2)  

SHAPE führt zwei Befehle aus: select * from t1 und (select * from t2 RELATE k1 TO k2). Wenn der Benutzer einen zusammengesetzten Befehl bereitstellt, der aus mehreren Anbieterbefehlen besteht, die durch Semikolons getrennt sind, kann SHAPE den Unterschied nicht unterscheiden. Also im folgenden SHAPE-Befehl:

SHAPE {select * from t1; drop table t1} APPEND ({select * from t2} RELATE k1 TO k2)  

SHAPE führt select * from t1; drop table t1 aus undselect * from t2 RELATE k1 TO k2), erkennt nicht, dass drop table t1 ein separater und in diesem Fall gefährlicher Anbieterbefehl ist. Anwendungen müssen immer die Benutzereingabe überprüfen, um zu verhindern, dass solche potenziellen Hackerangriffe auftreten.

Dieser Abschnitt enthält die folgenden Themen.

Siehe auch

Datenstrukturierungsbeispiel
Formale Form-Grammatik
Shape-Befehle im Allgemeinen