アップデートグラムへのパラメーターの引き渡し (SQLXML 4.0)
適用対象: SQL Server Azure SQL Database
アップデートグラムはテンプレートであり、パラメーターを渡すことができます。 テンプレートにパラメーターを渡す方法の詳細については、「 Updategram セキュリティに関する考慮事項 (SQLXML 4.0)を参照してください。
アップデートグラムでは、パラメーター値として NULL を渡すことができます。 NULL パラメーター値を渡すには、 nullvalue 属性を指定します。 パラメーター値として、 nullvalue 属性に割り当てられる値が指定されます。 アップデートグラムでは、この値は NULL として扱われます。
Note
<sql:header>と<updg:header>では、nullvalueを非修飾として指定する必要があります。一方、<updg:sync>では、nullvalueを修飾として指定します (たとえば、updg:nullvalue)。
例
次の例を使用して作業サンプルを作成するには、「SQLXML の例を実行するための Requirementsで指定されている要件を満たす必要があります。
アップデートグラムの例を使用する前に、次の点に注意してください。
- 例では、アップデートグラムでマッピング スキーマを指定せず、既定のマッピングを使用します。 マッピング スキーマを使用するアップデートグラムのその他の例については、「 アップデートグラム (SQLXML 4.0)での注釈付きマッピング スキーマの指定」を参照してください。
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 としてファイルに保存します。
ADO を使用して SQLXML 4.0 クエリを実行するで SQLXML 4.0 テスト スクリプト (Sqlxml4test.vbs) を準備し、
cmd.Properties("Output Stream").Value = outStream
の後に次の行を追加してアップデートグラムを実行します。cmd.NamedParameters = True ' CreateParameter arguments: Name, Type, Direction, Size, Value cmd.Parameters.Append cmd.CreateParameter("@ShiftID", 2, 1, 0, 1) cmd.Parameters.Append cmd.CreateParameter("@Name", 200, 1, 50, "New Name")
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 としてファイルに保存します。
ADO を使用して SQLXML 4.0 クエリを実行するで SQLXML 4.0 テスト スクリプト (Sqlxml4test.vbs) を準備し、
cmd.Properties("Output Stream").Value = outStream
の後に次の行を追加してアップデートグラムを実行します。cmd.NamedParameters = True ' CreateParameter arguments: Name, Type, Direction, Size, Value cmd.Parameters.Append cmd.CreateParameter("@EmployeeID", 3, 1, 0, 1) cmd.Parameters.Append cmd.CreateParameter("@ManagerID", 3, 1, 0, Null)