Partager via


Passage de paramètres aux codes de mise à jour (updategrams) (SQLXML 4.0)

Les codes de mise à jour sont des modèles ; par conséquent, vous pouvez leur passer des paramètres. Pour plus d'informations sur le passage de paramètres à des modèles, consultez Considérations de sécurité relatives au code de mise à jour (updategram) (SQLXML 4.0).

Les codes de mise à jour vous permettent de passer NULL comme valeur de paramètre. Pour passer la valeur de paramètre NULL, vous spécifiez l'attribut nullvalue. La valeur assignée à l'attribut nullvalue est ensuite fournie comme valeur de paramètre. Les codes de mise à jour traitent cette valeur comme NULL.

Notes

Dans <sql:header> et <updg:header>, vous devez spécifier nullvalue comme non qualifié, tandis que dans <updg:sync>, vous spécifiez nullvalue comme qualifié (par exemple, updg:nullvalue).

Exemples

Pour créer des exemples fonctionnels à l'aide des exemples suivants, les conditions spécifiées dans Configuration requise pour l'exécution des exemples SQLXML doivent être réunies.

Avant d'utiliser les exemples de code de mise à jour (updategram), notez les points suivants :

A. Passage de paramètres à un code de mise à jour

Dans cet exemple, le code de mise à jour modifie le nom d'un horaire de travail dans la table HumanResources.Shift. Deux paramètres sont passés au code de mise à jour : ShiftID, utilisé pour identifier un horaire de travail de manière unique, et Nom.

<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>

Pour tester le code de mise à jour

  1. Copiez le code de mise à jour ci-dessus dans le Bloc-notes et enregistrez-le sous le nom UpdategramWithParameters.xml.

  2. Préparez le script de test SQLXML 4.0 (Sqlxml4test.vbs) dans Utilisation d'ADO pour exécuter des requêtes SQLXML 4.0 pour exécuter le code de mise à jour en ajoutant les lignes suivantes après le 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. Passage de NULL comme valeur de paramètre à un code de mise à jour

Lors de l'exécution d'un code de mise à jour, la valeur « isnull » est assignée au paramètre auquel vous souhaitez affecter la valeur NULL. Le code de mise à jour convertit la valeur de paramètre « isnull » en NULL et la traite en conséquence.

Le code de mise à jour suivant affecte la valeur NULL à la fonction d'un employé :

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:header nullvalue="isnull" >
  <updg:param name="OldJobTitle"/>
  <updg:param name="NewJobTitle" />
</updg:header>
  <updg:sync >
    <updg:before>
       <HumanResources.Employee JobTitle="$OldJobTitle" />
    </updg:before>
    <updg:after>
      <HumanResources.Employee JobTitle="$NewJobTitle" />
    </updg:after>
  </updg:sync>
</ROOT>

Pour tester le code de mise à jour

  1. Copiez le code de mise à jour ci-dessus dans le Bloc-notes et enregistrez-le sous le nom UpdategramPassingNullvalues.xml.

  2. Préparez le script de test SQLXML 4.0 (Sqlxml4test.vbs) dans Utilisation d'ADO pour exécuter des requêtes SQLXML 4.0 pour exécuter le code de mise à jour en ajoutant les lignes suivantes après le 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)