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 (updategram) 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).
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.
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 à 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.
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)
Voir aussi
Référence
Considérations de sécurité relatives au code de mise à jour (updategram) (SQLXML 4.0)