Partager via


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

S’applique à : SQL ServerAzure SQL Database

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

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

Remarque

Dans <sql :header> et <updg :>header, vous devez spécifier la valeur null comme non qualifiée ; alors que, dans <updg :sync>, vous spécifiez la valeur null comme qualifiée (par exemple, updg :nullvalue).

Exemples

Pour créer des exemples de travail à l’aide des exemples suivants, vous devez répondre aux exigences spécifiées dans Configuration requise pour l’exécution d’exemples SQLXML.

Avant d'utiliser les exemples de code de mise à jour, 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 employé 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 l’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 :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 à un titre d'employé :

<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>  
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 l’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 :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)  
    

Voir aussi

Considérations de sécurité relatives au code de mise à jour (updategram) (SQLXML 4.0)