アップデートグラムへのパラメータの引き渡し (SQLXML 4.0)
アップデートグラムはテンプレートであり、パラメータを渡すことができます。テンプレートにパラメータを渡す方法の詳細については、「アップデートグラムのセキュリティに関する注意点 (SQLXML 4.0)」を参照してください。
アップデートグラムでは、パラメータ値として NULL を渡すことができます。NULL パラメータ値を渡すには、nullvalue 属性を指定し、nullvalue 属性に割り当てられる値をパラメータ値として指定します。アップデートグラムでは、この値は NULL として扱われます。
注意 |
---|
<sql:header> および <updg:header> では、nullvalue を修飾子なしで指定し、<updg:sync> では、nullvalue を updg:nullvalue のように修飾子付きで指定します。 |
例
次の例を使用した実際のサンプルを作成するには、「SQLXML のサンプル実行のための必要条件」で指定される条件を満たす必要があります。
アップデートグラムの例を使用する前に、次のことに注意してください。
例では、アップデートグラムでマッピング スキーマを指定せず、既定のマッピングを使用します。マッピング スキーマを使用するアップデートグラムの例については、「アップデートグラムでの注釈付きマッピング スキーマの指定 (SQLXML 4.0)」を参照してください。
更新は AdventureWorks データベースのテーブルに適用されます。AdventureWorks データベースは復元できます。詳細については、「AdventureWorks サンプル データベース」を参照してください。
A. アップデートグラムにパラメータを渡す
この例では、アップデートグラムで HumanResources.Shift テーブル内の従業員の姓を変更します。アップデートグラムには、勤務時間を一意に識別する ShiftID と、Name の 2 つのパラメータが渡されます。
<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:header>
<updg:param name="ShiftID"/>
<updg:param name="Name" />
</updg:header>
<updg:sync >
<updg:before>
<HumanResources.Shift ShiftID="$ShiftID" />
</updg:before>
<updg:after>
<HumanResources.Shift Name="$Name" />
</updg:after>
</updg:sync>
</ROOT>
アップデートグラムをテストするには
上のアップデートグラムをメモ帳にコピーし、UpdategramWithParameters.xml としてファイルに保存します。
SQLXML 4.0 テスト スクリプト (Sqlxml4test.vbs) を作成し、それを使用してアップデートグラムを実行します。
詳細については、「ADO を使用した、SQLXML 4.0 クエリの実行」を参照してください。
B. アップデートグラムにパラメータ値として NULL を渡す
アップデートグラムを実行するときに、NULL に設定するパラメータに "isnull" 値を割り当てます。アップデートグラムでは "isnull" パラメータ値が NULL に変換され、それに従って処理が行われます。
次のアップデートグラムでは、従業員の役職を NULL に設定します。
<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:header nullvalue="isnull" >
<updg:param name="EmployeeID"/>
<updg:param name="ManagerID" />
</updg:header>
<updg:sync >
<updg:before>
<HumanResources.Employee EmployeeID="$EmployeeID" />
</updg:before>
<updg:after>
<HumanResources.Employee ManagerID="$ManagerID" />
</updg:after>
</updg:sync>
</ROOT>
アップデートグラムをテストするには
上のアップデートグラムをメモ帳にコピーし、UpdategramPassingNullvalues.xml としてファイルに保存します。
SQLXML 4.0 テスト スクリプト (Sqlxml4test.vbs) を作成し、それを使用してアップデートグラムを実行します。
詳細については、「ADO を使用した、SQLXML 4.0 クエリの実行」を参照してください。