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.
[!REMARQUE]
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 :
Les exemples utilisent le mappage par défaut (en d'autres termes, aucun schéma de mappage n'est spécifié dans le code de mise à jour (updategram)). Pour obtenir des exemples supplémentaires de code de mise à jour qui utilisent des schémas de mappage, consultez Spécification d'un schéma de mappage annoté dans un code de mise à jour (updategram) (SQLXML 4.0).
Les mises à jour sont appliquées aux tables de la base de données AdventureWorks. Vous pouvez restaurer la base de données AdventureWorks. Pour plus d'informations, consultez Exemples de bases de données AdventureWorks.
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
Copiez le code de mise à jour ci-dessus dans le Bloc-notes et enregistrez-le sous le nom UpdategramWithParameters.xml.
Créez et utilisez le script de test SQLXML 4.0 (Sqlxml4test.vbs) pour exécuter le code de mise à jour (updategram).
Pour plus d'informations, consultez Utilisation d'ADO pour exécuter des requêtes SQLXML 4.0.
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
Copiez le code de mise à jour ci-dessus dans le Bloc-notes et enregistrez-le sous le nom UpdategramPassingNullvalues.xml.
Créez et utilisez le script de test SQLXML 4.0 (Sqlxml4test.vbs) pour exécuter le code de mise à jour (updategram).
Pour plus d'informations, consultez Utilisation d'ADO pour exécuter des requêtes SQLXML 4.0.