Freigeben über


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