アップデートグラムは、レコード インスタンスが <before> ブロックに表示され、<以降>ブロックに対応するレコードがない場合に削除操作を示します。 この場合、アップデートグラムはデータベースから <before> ブロック内のレコードを削除します。
これは、削除操作のアップデートグラム形式です。
<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:sync [mapping-schema="SampleSchema.xml"] >
<updg:before>
<ElementName />
[<ElementName .../>... ]
</updg:before>
[<updg:after>
</updg:after>]
</updg:sync>
</ROOT>
アップデートグラムが削除操作のみを実行している場合は、<after> タグを省略できます。 省略可能な mapping-schema 属性を指定しない場合、アップデートグラムで指定された <ElementName> はデータベース テーブルにマップされ、子要素または属性はテーブル内の列にマップされます。
アップデートグラムで指定された要素がテーブル内の複数の行と一致するか、行と一致しない場合、アップデートグラムはエラーを返し、<sync> ブロック全体を取り消します。 アップデートグラム内の要素によって削除できるレコードは一度に 1 つだけです。
例示
このセクションの例では、既定のマッピングを使用します (つまり、アップデートグラムでマッピング スキーマは指定されません)。 マッピング スキーマを使用するアップデートグラムのその他の例については、「 アップデートグラムでの注釈付きマッピング スキーマの指定 (SQLXML 4.0)」を参照してください。
次の例を使用して作業サンプルを作成するには、「SQLXML の例を 実行するための要件」で指定されている要件を満たす必要があります。
A。 アップデートグラムを使用したレコードの削除
次のアップデートグラムでは、HumanResources.Shift テーブルから 2 つのレコードが削除されます。
これらの例では、アップデートグラムはマッピング スキーマを指定しません。 そのため、アップデートグラムでは既定のマッピングが使用されます。このマッピングでは、要素名がテーブル名にマップされ、属性またはサブ要素が列にマップされます。
この最初のアップデートグラムは属性中心であり、<before> ブロック内の 2 つのシフト (Day-Evening と Evening-Night) を識別します。 <after> ブロックに対応するレコードがないため、これは削除操作です。
<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:sync >
<updg:before>
<HumanResources.Shift ShiftID="4"
Name="Day-Evening"
StartTime="1900-01-01 11:00:00.000"
EndTime="1900-01-01 19:00:00.000"
ModifiedDate="2004-01-01 00:00:00.000" />
<HumanResources.Shift ShiftID="5"
Name="Evening-Night"
StartTime="1900-01-01 19:00:00.000"
EndTime="1900-01-01 03:00:00.000"
ModifiedDate="2004-01-01 00:00:00.000" />
</updg:before>
<updg:after>
</updg:after>
</updg:sync>
</ROOT>
アップデートグラムをテストするには
XML アップデートグラムを使用したデータの挿入 (SQLXML 4.0) の完全な例 B (「アップデートグラムを使用して複数のレコードを挿入する」)。
上記のアップデートグラムをメモ帳にコピーし、「XML アップデートグラムを使用した データの挿入 (SQLXML 4.0)」の完了に使用したのと同じフォルダーに Updategram-RemoveShifts.xml として保存します (「アップデートグラムを使用して複数のレコードを挿入する」)。
SQLXML 4.0 テスト スクリプト (Sqlxml4test.vbs) を作成して使用して、アップデートグラムを実行します。
詳細については、「ADO を使用した SQLXML 4.0 クエリの実行」を参照してください。