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 aux modèles, consultez Considérations relatives à la sécurité du code de mise à jour (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, spécifiez l’attribut nullvalue . La valeur affectée à l’attribut nullvalue est ensuite fournie en tant que 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 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 opérationnels à 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 :
- 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 d’autres exemples de codes 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 (SQLXML 4.0).
R. 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 :
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 :
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)
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour