Shape の APPEND 句

Shape コマンドの APPEND 句は、レコードセットに列または列を追加します。 多くの場合、これらの列は子レコードセットを参照するチャプター列です。

構文

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

説明

この句の各部分は次のとおりです。

parent-command
0 または次のいずれか (parent-command を完全に省略できます)。

  • {}Recordset オブジェクトを返す中かっこ ("") で囲まれたプロバイダー コマンド。 このコマンドは基になるデータ プロバイダーに対して発行され、その構文はそのプロバイダーの要件によって異なります。 これは通常、SQL 言語になりますが、ADO では特定のクエリ言語は必要ありません。

  • かっこに埋め込まれた別の shape コマンド。

  • データ プロバイダー内のテーブルの名前が後に続く TABLE キーワード。

parent-alias
レコードセットを参照する省略可能なエイリアス。

column-list
次のうちの 1 つ以上です。

  • 集計列。

  • 計算列。

  • 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 コマンド。

  • 既存の形成済みのレコードセットの名前。

  • データ プロバイダー内のテーブルの名前が後に続く TABLE キーワード。

child-alias
レコードセットを参照する別名。

parent-column
parent-command によって返されるレコードセット内の列。

child-column
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 では、次の 2 つのコマンドが実行されます。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 が別のものであり、この場合は危険なプロバイダー コマンドであることが認識されていません)。 このような潜在的なハッカー攻撃が発生しないように、アプリケーションは常にユーザー入力を検証する必要があります。

このセクションでは、次のトピックを扱います。

参照

データ シェイプの例
Shape の正式文法
一般的な Shape コマンド