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 :
- 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 plus d’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).
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 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
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 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)